Из этого тривиального примера:
$ x="ls output: "
$ ls | while read line; do x="$x $line"; echo $x; done
ls output: a
ls output: a b
ls output: a b c
ls output: a b c d
$ echo $x
ls output:
кажется, что символ канала запускает новую оболочку, которая получает копию переменной x
, но в конце канала значение x
внутри этого значения не копируется обратно во внешнюю оболочку.
Есть ли какой-нибудь способ, которым я могу получить его?
Примечание: я знаю, что есть намного лучшие / более простые способы получить эта конкретная вещь сделана, но это только упрощенный пример. Мой вопрос, как получить информацию через некоторое время l oop после трубы.