На этот вопрос уже есть ответ здесь:
Привет, ребята, я хотел бы знать, в чем разница в bash, который я использовал ls
без ``
в bash, поэтому моя программа не работала, и когда я добавляю «
, она работает, каков ее объект
for i in `ls`
do
if [ -d $i ]
then
echo $i
let j=$j+1
fi
if [ -f $i ]
then
echo $i
let k=$k+1
fi
if [ -x $i ]
then
echo $i
let l=$l+1
fi
done
echo "Il y a $j répertoires, $k fichiers et $l exécutables dans $rep"
'ls' (или любая команда) возвращает результаты команды переменной. Просто команда отдельно возвращает результаты stdout ("стандарт" - вывод к терминалу).
Другой синтаксис Вы будете видеть, что означает те же самые вещи, является $ (ls). Это также возвращает результаты переменной.
Таким образом развернуть Ваш код для создания этого немного более понятным:
DIRECTORIES=`ls`
for i in $DIRECTORIES
do
...
done
и только продемонстрировать немного больше, что продолжается здесь:
echo $DIRECTORIES
распечатает список каталогов от ls до stdout (к терминалу)