[TUHS] sh: cmd | >file

Brian Zick brian at zick.io
Sat Jan 4 03:03:07 AEST 2020


I'm curious to know if you have a script you used to prove these correct?

B

On Fri, Jan 3, 2020, at 8:00 AM, Steffen Nurpmeso wrote:
> markus schnalke wrote in <1inMKv-0Km-00 at marmaro.de>:
>  |Hoi,
> 
> Morsche.
> 
>  |in a computer forum I came across a very long command line,
>  |including `xargs' and `sh -c'. Anyways, throughout the thread
>  |it was modified several times, when accidently a pipe symbol
>  |appeared between the command and the output redirection. The
>  |command line did nothing; it ran successful. I was confused,
>  |because I expected to see a syntax error in case of
>  |``cmd|>file''. This made me wonder ...
>  |
>  |
>  |With help of Sven Mascheck, I was able to clear my understanding.
>  |The POSIX shell grammer provided the answer:
>  ...
>  |A redirection is a (full) simple_command ... and because
>  |``simple_command | simple_command'' is allowed, so is
>  |``io_file | io_file''. This can lead to such strange (but
>  |valid) command lines like:
>  | 
>  | <a | >b 
>  |>b | <a 
>  | 
>  |Sven liked this one:
>  |
>  |:|>: 
>  |
>  |Here some further fun variants:
>  | 
>  |:|:>: 
>  |
>  | <:|:>: 
>  |
>  |They would provide nice puzzles. ;-)
>  ...
>  |- Syntax ok in these shells:
>  |
>  |SVR2 sh (Ultrix), SVR4 sh (Heirloom)
> 
> Be aware of spurious :> errors in Heirloom shell, and maybe its
> origin (never had those).  It is why the unit test of my little
> web site builder thing has been switched to "printf '' > FILE".
> 
>  |ksh93
>  |bash-1.05, bash-aktuell
>  |pdksh-5.2.14
>  |ash-0.4.26, dash-0.5.6.1
>  |posh-0.3.7, posh-0.12.3
>  |mksh-R24, mksh-R52b
>  |yash-2.29
>  |zsh-3.0.8, zsh-4.3.17
>  |
>  |- Exception to the rule:
>  |
>  |7thEd sh:
>  |
>  |    # pwd|>>file
>  |    # echo $?
>  |    141
>  |
>  |On first sight ok, but with a silent error ... SIGPIPE (128+13).
>  |
>  |I'd be interested in any stories and information around this
>  |topic.
>  |
>  |What about 7thEd sh?
> 
>   Beware of bugs in the above code; I have only proved it correct,
>   not tried it.
> 
>  |meillo
>  --End of <1inMKv-0Km-00 at marmaro.de>
> 
> --steffen
> |
> |Der Kragenbaer,                The moon bear,
> |der holt sich munter           he cheerfully and one by one
> |einen nach dem anderen runter  wa.ks himself off
> |(By Robert Gernhardt)
>


More information about the TUHS mailing list