Shell script termination with exit function in backquotes

Maxim Khitrov max at mxcrypt.com
Mon Mar 14 12:17:22 UTC 2011


On Mon, Mar 14, 2011 at 3:16 AM, Andres Perera <andres.p at zoho.com> wrote:
> On Sun, Mar 13, 2011 at 9:49 PM, Devin Teske <dteske at vicor.com> wrote:
>> If you make the changes that I've suggested, you'll have consistent execution. The reason you're having inconsistent behavior is because Linux has /bin/sh symbolically linked to /bin/bash while FreeBSD has a more traditional 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


More information about the freebsd-questions mailing list