Greg Troxel <g...@ir.bbn.com> writes: > Eric Schulte <schulte.e...@gmail.com> writes: > >>> Just an fyi: I had to set org-babel-sh-command to "bash" for this to >>> work. Why is "sh" the default value of this variable? >>> >> >> I think sh is more portable, but I guess almost any system should have >> bash as well, I've just changed this default to bash. > > (Assuming you mean that you changed the default in the org sources, not > in your config files.) > > Please don't, at least without discussion of the consequences of adding > a dependency that is beyond POSIX.. sh is specified by posix, and bash > is a) sometimes not present and b) behaves differently than as specified > by POSIX, leading people to write nonportable code. > > If someone wants to run bash explicitly, it makes sense to have a bash > language block that they can use. But the sh language block should be > sh. The real point is that bash is a different language.
I understand your point, but in reality I doubt there are many systems on which people use Org-mode with code blocks and on which sh is available but no bash is installed. Bash is the new normal shell and I would argue is what most users expect from a shell code block. E.g., the default value of `shell-file-name' used by M-x shell is "/bin/bash". It is possible to explicitly set shell code blocks to use sh. Best, -- Eric Schulte https://cs.unm.edu/~eschulte PGP: 0x614CA05D