> On 06 Nov 2016, at 15:29, Jeff King <peff@xxxxxxxx> wrote: > > On Sun, Nov 06, 2016 at 03:25:33PM +0100, Lars Schneider wrote: > >> This looks good to me (and it works on my machine). >> However, I took a look at the "write_script" function and found this, >> added by Junio in 840c519d: >> >> echo "#!${2-"$SHELL_PATH"}" && >> >> There is some kind of variable expansion happening with the "2-" but >> I can't quite figure out what is going on. Plus, I can't find anything >> about this in the sh docs. >> >> Can anyone help me to understand it? > > See the section on parameter expansion in "man bash". Basically: > > ${foo:-bar} > > expands to $foo, or "bar" if it is unset or empty. Without the colon: > > ${foo-bar} > > expands to $foo, "bar" if it unset (but not if it is empty). Ahh! The missing colon tricked me. For some reason the version without colon is not mentioned in my docs (GNU bash, version 3.2.57) or I overlooked it. Thanks for taking the time to explain it! - Lars