Я создаю скрипт, который ищет файлы и подсчитывает их. Позже я использую это значение count для создания файлов резервных копий. Это то, что он выглядит следующим образом:Bash for loop return null stop program?
#!/bin/sh
#LOCAL VAR PERFECTLY DEFINED
if $estdifferent ; then
x=0;
for fic in `find $OTHERDIR/liste/ -type f -name "${filename}_bak*"` ; do
{
filename_tab[x]=$fic
((x++))
}
echo "tableau rempli, nombre de fichier bak : "$x
Это кодоблок работает, когда «найти» найти хотя бы один файл, но не тогда, когда есть 0 файлов. Скрипт не достигает последнего «эха». Режим отладки останавливает сценарий по адресу:
echo differents
differents
true
x=0
find /tech/gtr/scripts/osm/scan-configs/liste/ -type f -name 'IDF-952584-S...
Почему?
Какой вкус и версия '/ bin/sh' это? Это недопустимый синтаксис 'bash'. Цикл 'for' выглядит как' for ...; do ... done', а не с блоком '{...}'. – twalberg
Bash 4.1.2 (1) для redhat. Этот синтаксис «for» работает, когда найден файл :) –