в чем разница между ls и `ls` в bash [дубликат]

На этот вопрос уже есть ответ здесь:

Привет, ребята, я хотел бы знать, в чем разница в 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"
-1
задан 29 December 2018 в 15:12

1 ответ

'ls' (или любая команда) возвращает результаты команды переменной. Просто команда отдельно возвращает результаты stdout ("стандарт" - вывод к терминалу).

Другой синтаксис Вы будете видеть, что означает те же самые вещи, является $ (ls). Это также возвращает результаты переменной.

Таким образом развернуть Ваш код для создания этого немного более понятным:

DIRECTORIES=`ls`
for i in $DIRECTORIES
do
...
done

и только продемонстрировать немного больше, что продолжается здесь:

echo $DIRECTORIES

распечатает список каталогов от ls до stdout (к терминалу)

-1
ответ дан 26 October 2019 в 16:52

Другие вопросы по тегам:

Похожие вопросы: