On Thu, Feb 02, 2012 at 05:02:17PM -0800, Junio C Hamano wrote: > Jeff King <peff@xxxxxxxx> writes: > > > I wonder if a better solution is to use a known-good shell instead of > > trying to work around problems in a bogus shell. > > Yeah, I think that is a better approach. > > What prevents us from doing 's|^#! */bin/sh|$#$SHELL_PATH|' on everything > in t/ directory (I am not suggesting to do this. I just want to know if > there is a reason we want hardcoded "#!/bin/sh" for some instances). The quoting is more annoying, because you usually don't want interpolation on the rest of the lines of your embedded script. So: 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". -Peff -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html