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)

Reply via email to