On Wed, May 13, 2020 at 01:10:36AM -0400, Eric Sunshine wrote: > > On Wed, May 13, 2020 at 1:02 AM Junio C Hamano <gitster@xxxxxxxxx> wrote: > > "brian m. carlson" <sandals@xxxxxxxxxxxxxxxxxxxx> writes: > > > [...] A value of "/bin/sh" doesn't > > > necessarily tell us very much on Debian (or on macOS, for that matter). > > > > Good point. Perhaps readlink(3) on it, then? > > > > lrwxrwxrwx 1 root root 9 Mar 11 2018 /bin/sh -> /bin/bash > > That wouldn't help on Mac OS: > > $ ls -l /bin/sh /bin/bash > -r-xr-xr-x 1 root wheel 618448 Mar 18 22:04 /bin/bash > -r-xr-xr-x 1 root wheel 618512 Mar 18 22:04 /bin/sh > > Although /bin/sh is neither a hard link nor a symbolic link to > /bin/bash, nor is the file size the same, it is nevertheless Bash (in > some form or another). Hum. It seems some useful things exist like $BASH_VERSION and $ZSH_VERSION, but I'm not terribly excited about the idea of making a list and checking each one in bugreport (as it's sure to be nonexhaustive). I found a few more heuristics in a SO post[1] but this approach generally looks like a pain, and somewhat unreliable. Most other alternatives I found with a cursory Google involve checking the name of the shell, which I think will have the same issues as checking $SHELL: - `ps -p $$` for info about the current process (didn't reveal bash when I `cp /bin/bash ~/bin/nish && ~/bin/nish`) - `echo $0` since it's coming from the command line, of course will be the same as $SHELL I suppose if we wanted to do the heuristics it'd be a better experience for us, the bugreport receivers, to have the bugreport library collect the heuristics and try to make a guess, rather than just dump all the heuristics and let the humans try to remember which shell has $PS4 and which shell has $version and so on. But to me that sounds prone to rot at best. - Emily [1]: https://stackoverflow.com/a/3327022