unset v
function f {
v=1
}
f | cat
echo v=$v
f
echo v=$v
Почему конвейер (для любой команды) не позволяет первой команде echo вывести 1? Второе эхо выводит 1. Я использую оболочку bash. Я могу увидеть это, скопировав / вставив или запустив это как скрипт.