Date: Mon, 14 Mar 2011 08:16:50 -0400 From: Maxim Khitrov <max@mxcrypt.com> To: 839273@gmail.com Cc: Devin Teske <dteske@vicor.com>, Andres Perera <andres.p@zoho.com>, FreeBSD <freebsd-questions@freebsd.org> Subject: Re: Shell script termination with exit function in backquotes Message-ID: <AANLkTimrnV2rJLyc3M4e3gGy_GUDLXp128f6n8svM3_g@mail.gmail.com> In-Reply-To: <AANLkTi=CXLFUBhnY1LuhkeUiGHHGZ43yd%2BMYE9L50_O4@mail.gmail.com> References: <AANLkTi=-CFmxRicGcosvzhBbM3DMjbWwQNirMrJ1_KP=@mail.gmail.com> <759A467E-407A-4DB8-9756-08011B5405F0@vicor.com> <AANLkTi=CXLFUBhnY1LuhkeUiGHHGZ43yd%2BMYE9L50_O4@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Mar 14, 2011 at 3:16 AM, Andres Perera <andres.p@zoho.com> wrote: > On Sun, Mar 13, 2011 at 9:49 PM, Devin Teske <dteske@vicor.com> wrote: >> If you make the changes that I've suggested, you'll have consistent exec= ution. The reason you're having inconsistent behavior is because Linux has = /bin/sh symbolically linked to /bin/bash while FreeBSD has a more tradition= al shell (we'll call it bourne shell "plus"). > > that is misleading because command substitutions have traditionally > invoked subshells, and freebsd sh(1)/ash is an exception, not the norm > > in this case, ksh and bash deviates are clearly closer to standard > bourne behaviour > Thanks for that explanation. I can understand the benefits of optimizing away subshell execution, but that can clearly lead to unexpected behavior. Is there some documentation on when this optimization is utilized (i.e. the command executed without a subshell)? Would I be correct in assuming that it is only restricted to built-in commands that are known not to produce any output, such as 'exit'? - Max
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTimrnV2rJLyc3M4e3gGy_GUDLXp128f6n8svM3_g>