Skip site navigation (1)Skip section navigation (2)
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>