конвейер bash предотвращает присвоение глобальной переменной

unset v
function f {
  v=1
}
f | cat
echo v=$v
f 
echo v=$v

Почему конвейер (для любой команды) не позволяет первой команде echo вывести 1? Второе эхо выводит 1. Я использую оболочку bash. Я могу увидеть это, скопировав / вставив или запустив это как скрипт.

5
задан Paŭlo Ebermann 6 June 2011 в 16:51
поделиться