On 6/23/22 5:08 PM, Steffen Nurpmeso wrote:
Chet Ramey wrote in
<4169f2cd-d81c-29b7-918c-156b447c5...@case.edu>:
|On 6/23/22 9:39 AM, Steffen Nurpmeso wrote:
|> I stumbled over a bug in the MUA i maintain, and when checking
|> against what shells do with lonely unary ! i then came to this:
|>
|> #?0|kent:tmp$ dash -c 'if [ ! ! hey ]; then echo du; fi'
|> du
|> #?0|kent:tmp$ bash -c 'if [ ! ! hey ]; then echo du; fi'
|> bash: line 1: [: too many arguments
|> #?0|kent:tmp$ busybox.static sh -c 'if [ ! ! hey ]; then echo du; fi'
|> du
|
|Thanks for the report. This appears to have existed for over thirty years,
|and you're the first one to report it.
Hey. For a C programmer things like
bash -c 'if [ ! hey = hey ]; then echo du; fi'
or even
bash -c 'if [ ! ! hey = hey ]; then echo du; fi'
bash -c 'if [ ! false = 1 ]; then echo du; fi'
seem often more strange .. and is handled the same by all above
shells.
Sure. This one isn't a common idiom for shell programmers, apparently.
--
``The lyf so short, the craft so long to lerne.'' - Chaucer
``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU c...@case.edu http://tiswww.cwru.edu/~chet/