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. (P.S.: but mind you, the times when i used to say, give it to me, if i cannot break it that is a good sign, they have long passed. You have to walk to stumble that is. Ciao.) --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)