While investigating "[BUG] ob-shell: :shebang changes interpretation of 
:cmdline" 
(https://list.orgmode.org/orgmode/18f01342a2f.124ad27612732529.8693431365849276...@excalamus.com/),
 it was observed that :cmdline 1 2 3 behaves like :cmdline "1 2 3"

The first argument is the first space delimited character following ":cmdline":

#+begin_src bash :cmdline 1 2 3
echo "$1"
#+end_src

#+RESULTS:
: 1

The following makes it seem like command-line arguments may be grouped using 
quotes:

#+begin_src bash :cmdline "1 2" 3
echo "$1"
#+end_src

#+RESULTS:
: 1 2

The following demonstrates that quotes do not always indicate separate 
arguments:

#+begin_src bash :cmdline "1 2 3" 
echo "$1"
#+end_src

#+RESULTS:
: 1

It was stated that,

#+begin_quote
AFAICT, it's due to how headers are parsed by 
'org-babel-parse-header-arguments' using 'org-babel-read'. The cell "\"1 2 3\"" 
(corresponding to :cmdline "1 2 3") is reduced through 'string-match' to "1 2 
3". The cell "1 2 3" (corresponding to :cmdline 1 2 3), on the other hand, 
passes through. The result is that :cmdline "1 2 3" and :cmdline 1 2 3 become 
indistinguishable.
#+end_quote

Org mode version 9.7-pre (release_9.6.27-1393-ge0f24a @ 
/home/ahab/Projects/org-mode/lisp/), commit e0f24a3f6

--
Matt Trzcinski
Emacs Org contributor (ob-shell)
Learn more about Org mode at https://orgmode.org
Support Org development at https://liberapay.com/org-mode



Reply via email to