Как я могу получить доступ к выводам ls в bash?

#bash #shell #for-loop

#bash #оболочка #для цикла

Вопрос:

Я пишу следующий скрипт, ожидая распечатать файлы в каталоге. Но это просто вывод строки «ls» на экран.

В чем проблема?

 #!/bin/bash
for FILE in 'ls' 
do
   echo $FILE
done
  

Комментарии:

1. Вы можете сделать это без обратных ссылок, for FILE in *;do echo $FILE;done — или просто использовать find .

2. @user379203: Если этот ответ помог вам (и он выглядит правильным), пожалуйста, примите его (используя кнопку с галочкой).

Ответ №1:

Неправильные кавычки — вы хотите:

 for FILE in `ls`
  

Это обратные ссылки, а не одинарные кавычки. Еще лучше:

 for FILE in $( ls )
  

Возможно, вы также захотите заглянуть на этот сайт.

Комментарии:

1. Пожалуйста, не разбирайте ls ! Используйте for FILE in * вместо этого — это и быстрее, и менее подвержено ошибкам.