Speaking of female logic, I stumbled upon this: function bbb () {     vvar=4     print -l "\nShall\nI\ncompare thee\nto a\nsummer's day?" } function aaa () {     local vvar=1     bbb     echo "\nvvar is $vvar"     vvar=2     echo "\n=============\n"     bbb | grep 'a'     echo "\nvvar is $vvar" } %  aaa Shall I compare thee to a summer's day? vvar is 4 ============= Shall compare thee to a summer's day? vvar is 2 ------------------------------------------------------------------ By what thinking does the piping of a function's output thru grep cancel the assignment to the variable?  Do we really want that?