соответствии Баш (1) страницы человека, когда я бегу следующее:Глобальная переменная сбрасывается, если цикл отправки выход к трубе
set -e
x=2
echo Start $x
while [ $((x--)) -gt 0 ]; do echo Loop $x; done | cat
echo End $x
Выходной сигнал будет:
Start 2
Loop 1
Loop 0
End 2
После того, как петли (работает как субоболочка) переменные й сбрасываются на 2. Но если снять трубку й будет обновлено:
Start 2
Loop 1
Loop 0
End -1
Мне нужно изменить XB ut, мне тоже нужна труба. Любая идея, как обойти эту проблему?
Что '| кошка' здесь? Это что-то значимое? – devnull
http://stackoverflow.com/q/4667509/900873 – Kevin
@devnull, я думаю, что это просто для иллюстрации: добавление трубы ко всему будет означать, что цикл while запущен в подоболочке, а любые изменения переменной $ x теряются, когда заканчивается подоболочка. –