Я пытаюсь работать некоторые сценарии удара самостоятельно.
Скажем, я хотел бы, добавляют "привет" в начале строк такой как;
a="find . -type f"
$ for i in $a;do echo hi $i; done
но вывод:
hi find
hi .
hi -type
hi f
Я хотел бы поместить каждое начало переменного выполнения как вывод файла, который является здесь a, "привет" как я могу сделать это?
Править: я хочу добавить привет к очень fron "a" вывода переменных, но этого сценария, добавляющего привет каждую строку a..
Править: для типа-f к - тип f, @Terrance спасибо
может произвести быть;
hi ./me
hi ./you
жаль о неясном вопросе я надеюсь, может отредактировать работу...
Ваш for
цикл рассматривает $a
как строка и не выполнит его.
Использовать $(command)
когда необходимо выполнить что-то в другой команде.
Таким образом, то, что Вы сделали бы в своем случае, (не делайте этого, но следуйте за подсказкой ниже):
for i in $($a); do echo hi $i; done
Дополнительная Подсказка: Избегайте использования для цикла с выводом находки, поскольку Вы столкнетесь с проблемами, когда Ваши имена файлов будут содержать пробелы.
В Вашем случае будет работать следующее:
a="find . -type f"
while IFS= read -r i; do
echo "hi $i"
done < <($a)
<(command)
создает временный файл вывода команды.)