[CDBUG-talk] Sysadmin blog
Dan Langille
dan at langille.org
Mon Nov 17 16:36:19 EST 2014
> On Nov 16, 2014, at 9:59 PM, Jaime <jaime at snowmoon.com> wrote:
>
> On Sun, Nov 16, 2014 at 9:39 PM, Brian Callahan <bcallah at devio.us> wrote:
>> So this reminds me of an oft-forgotten point in portability of shell
>> scripts: the popularity of the linuxism #!/bin/bash (though it appears it
>> has crept into Mac OS X as well, sad...).
>
> I was aware of the down sides of hard-coding the path to the script's
> interpreter, but I wasn't aware of an alternative. So thanks for
> sharing the /usr/bin/env tip. I have two thoughts that I hope you're
> willing to hash-out with me, though.
>
> 1) Isn't the shebang that you suggested still hardcoded? When the
> script is taken to a new OS, wouldn't there still be a risk of it
> breaking? Has env just been in Unix for so long that its always in
> /usr/bin?
>
> 2) On MacOS, bash is always installed at /usr/bin/bash. My script
> uses utilities specific to MacOS to modify configuration files
> specific to MacOS in order to ease MacOS deployment. It is inherently
> irrelevent to other OSs and unable to move to another OS. So is there
> a benefit to changing the shebang to env?
Code shell scripts with /bin/sh and avoid having to know where/if bash is installed.
This is especially important for scripts others will use.
—
Dan Langille
More information about the CDBUG-talk
mailing list