From 87c1b09fd849309a694ecf29b8812b4d11f7aea2 Mon Sep 17 00:00:00 2001 From: Laurent Bercot Date: Tue, 27 Oct 2015 20:07:04 +0000 Subject: Make rant against sh more accurate (thanks izabera) --- doc/dieshdiedie.html | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/doc/dieshdiedie.html b/doc/dieshdiedie.html index 584b781..3bac160 100644 --- a/doc/dieshdiedie.html +++ b/doc/dieshdiedie.html @@ -33,15 +33,16 @@ on the subject, section 5.) of the shell is parsing: the parser and the runner are intimately interleaved and cannot be clearly separated, thanks to the specification. -Even worse, the -shell sometimes has to perform double parsing, for instance -after parameter expansion. This can lead to atrocities like -
-zork="foo ; echo bar"
-touch $zork
-
not doing what you would like them to do, even in that simple -case. (zsh has a sane behaviour by -default, at the expense of explicitly breaking the spec.) +The shell performs several kinds of expansions, automatic filename +globbing, and automatic word splitting, in an unintuitive order, +requiring users to memorize numerous arbitrary quoting rules in +order to achieve what they want. Pages +abound +where common mistakes are listed, more often than not leading to +security holes. Did you know that "$@" is a special case +of double quoting, because it will split the arguments into +several words, whereas every other use of double quotes in a shell is +meant to prevent splitting?

-- cgit v1.2.3