Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 28 Jun 2001 18:44:54 -0700
From:      Dave Tweten <tweten@nas.nasa.gov>
To:        freebsd-questions@freebsd.org
Subject:   Bourne Shell Syntax Wierdness
Message-ID:  <200106290144.f5T1itu01729@gilmore.nas.nasa.gov>

next in thread | raw e-mail | index | archive | help
The sh man page says that the two operators "||" and "&&" have the same 
precedence.  It also says that

	a || b

means "execute b if a terminates abnormally" and

	a && b

means "execute b if a terminates normally."

So I don't understand why

	true || true && echo Oops!

prints "Oops!"

This is apparently not a bug in FreeBSD sh, because IRIX, IRIX64, and SunOS 
Bourne/Korn shells work the same way, but it certainly runs counter to my 
ability to read English and the contents of the man page.

Incidently,

	true || { true && echo Oops! }

prints nothing -- which I would have expected with or without the "{}".

Can anybody explain this?  Can that explanation go into the sh man page?  
Thank you for any help you can provide -- from someone who expects to see a 
large, hurried, white rabbit at any minute now.
-- 
M/S 258-5                     | 1024-bit PGP fingerprint: | tweten@nas.nasa.gov
NASA Ames Research Center     |  41 B0 89 0A  8F 94 6C 59 |      (650) 604-4416
Moffett Field, CA  94035-1000 |  7C 80 10 20  25 C7 2F E6 | FAX: (650) 604-4377
We each earn what freedom of speech we defend for those who most offend us.



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200106290144.f5T1itu01729>