emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Re: [BUG] ob-shell: :shebang changes interpretation of :cmdl


From: Max Nikulin
Subject: Re: [PATCH] Re: [BUG] ob-shell: :shebang changes interpretation of :cmdline
Date: Wed, 24 Apr 2024 00:08:51 +0700
User-agent: Mozilla Thunderbird

On 23/04/2024 17:51, Max Nikulin wrote:
I am in favor of dropping `shell-command-switch' in the latter case to pass arguments literally in both cases.

Dropping "-c" may have side effects. Instead of :shebang, a source block may have shebang in the body

#+begin_src bash
#!/bin/bash -e
echo first; false; echo second
#+end_src

This shebang is ignored if the script is executed as
    bash /tmp/script
and respected in the case of
    bash -c /tmp/script
Shebang in the script body may be detected to run it as
    /tmp/script
or
    /bin/bash -e /tmp/script

To avoid interpretation of shell specials in script arguments when "-c" is used, it is possible to use a trick
    bash -c /tmp/script ob-shell arg1 arg2 arg3
The -c option adds extra execve() call in comparison to
    /tmp/script arg1 arg2 arg3
Perhaps it may be neglected.

It may be more tricky on Windows where shebangs are likely ignored even by bash. However I do not thing ob-shell is working on windows since `shell-command-switch' should be /c there instead of -c since default shell is cmd.exe.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]