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

Reply via email to