From: Jeff King Date: Fri, 03 Feb 2012 21:55:07 GMT Subject: Re: [PATCH] t0300-credentials: Word around a solaris /bin/sh bug Message-ID: <20120203215507.GB3472@sigill.intra.peff.net> In-Reply-To: <7vr4ybmvrq.fsf@alter.siamese.dyndns.org> On Fri, Feb 03, 2012 at 01:50:33PM -0800, Junio C Hamano wrote: > > write_script foo.sh "$SHELL_PATH" <<-\EOF > > echo my arguments are "$@" > > EOF > > I first thought that the order of parameters were unusual, but with that > order, you could even go something fancier like: > > write_script () { > case "$#" in > 1) case "$1" in > *.perl | *.pl) echo "#!$PERL_PATH" ;; > *) echo "#!$SHELL_PATH" ;; > esac > 2) echo "#!$2" ;; > *) BUG ;; > esac >"$1" && > cat >>"$1" && > chmod +x "$1" > } > Nice. I was going to suggest a wrapper like "write_sh_script" so you didn't have to spell out $SHELL_PATH, but I think the auto-detection makes sense (and falling back to shell makes even more sense, as that covers 99% of the cases anyway). -Peff