#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 *
вместо этого — это и быстрее, и менее подвержено ошибкам.