Уверен, что на это был дан ответ раньше, но я не могу найти решение.Bash variable in for loop
for i in `ls | grep ^t`; do echo $i; done
Это дает мне ожидаемые результаты (файлы и каталоги, начинающиеся с t). Если я хочу использовать переменную оболочки в цикле for (с каналом), как это сделать? Это было мое начало, но это не сработало.
z="ls | grep ^t"
for i in `$z` ; do echo $i; done
EDIT: Я согласен, этот пример не мудро выбрал, но то, что я в принципе нужно IShow использовать переменную (здесь $z
) в течение цикла (for i in $z
), который имеет, по меньшей мере, одну трубу.
Я пытаюсь более четко изложить свой вопрос: как мне нужно определить мою переменную (если я хочу, чтобы цикл по выходу команды с одним или несколькими каналами) и как вызов цикла for?
вы должны написать 'Z = \' Ls | grep^t \ '' –
@PatrickTrentin Это синтаксически корректно, но вы не должны его использовать. – chepner
@chepner достаточно честный; eta: не-ум, я посмотрел это сам. (: –