Re: [PATCH] t0300-credentials: Word around a solaris /bin/sh bug
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Feb 3, 2012, 20:32 UTC
- Message-ID
- <7v7h03odyo.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <20120203120657.GB31441@sigill.intra.peff.net>
Jeff King <peff@peff.net> writes:
Show 24 quoted lines
> cat >foo.sh <<\EOF
> #!/bin/sh
> echo my arguments are "$@"
> EOF
>
> cannot have the mechanical replace you mentioned above. It would need:
>
> cat >foo.sh <<EOF
> #!$SHELL_PATH
> echo my arguments are "\$@"
> EOF
>
> or:
>
> {
> echo "#!$SHELL_PATH" &&
> cat <<EOF
> echo my arguments are "$@"
> EOF
> } >foo.sh
>
> When I have hard-coded "#!/bin/sh", my thinking is usually "this is less
> cumbersome to type and to read, and this script-let is so small that
> even Solaris will get it right".I am toying with the pros-and-cons of
write_script () {
echo "#!$1"
shift
cat
}so that the above can become
write_script "$SHELL_PATH" >foo.sh <<-EOF
echo my arguments are "\$@"
EOFwithout requiring the brain-cycle to waste on the "Is this simple enough for even Solaris to grok?" guess game. This should also be reusable for other stuff like $PERL_PATH, I would think.