On Tue, Jan 3, 2023 at 10:22 PM John Cowan <cowan(a)ccil.org> wrote:
Making shell scripts portable means not using
pipelines, because given "foo | bar", kshNN and zsh execute foo in a subshell
and bar in the top-level shell, whereas in other shells, both foo and bar execute in
subshells. (For this reason, Posix allows either behavior.) Not having pipelines is a
pretty drastic limitation.
This came up at work just the other day:
echo ' hi ' | sed 's/^ *//;s/ *$//' | read bummer
echo $bummer
The behavior varies between ksh, zsh, bash, sh. Yay.
- Dan C.