Off the topic, I'm curious what is the `:session` in `ob-shell` ? [stardiviner] GPG key ID: 47C32433 IRC(freeenode): stardiviner Twitter: @numbchild Key fingerprint = 9BAA 92BC CDDD B9EF 3B36 CB99 B8C4 B8E5 47C3 2433 Blog: http://stardiviner.github.io/ On Tue, Nov 28, 2017 at 4:45 PM, Michael Welle wrote: > Hello, > > I want to execute shell blocks like follows: > > #+BEGIN_SRC shell :session n42 :dir /127.0.0.1: :shebang "#!/bin/bash" > echo los > echo $SHELL > echo $BASH > echo ready > #+end_src > > The trouble is that the shebang property doesn't work in this case. The > script is executed with the login shell of the user and fails because of > syntax errors (for instance, if bashisms are used in the script). > > With my minimal and dangerous knowledge about Org's source code ;), I > think the following might work (from ob-shell.el): > > (defun org-babel-sh-initiate-session (&optional session _params) > "Initiate a session named SESSION according to PARAMS." > (when (and session (not (string= session "none"))) > (save-window-excursion > (or (org-babel-comint-buffer-livep session) > (progn > (let ((explicit-shell-file-name (xxx))) > (shell session)) > ;; Needed for Emacs 23 since the marker is initially > ;; undefined and the filter functions try to use it without > ;; checking. > (set-marker comint-last-output-start (point)) > (get-buffer (current-buffer))))))) > > > Note the let form. Further tasks that have to be done is to add the > shebang key to _params, which I hope is available at all places where > o-b-s-i-s is evaluated. Further at (xxx) a regexp etc. is needed to > transform the shebang line to a shell path suitable for e-s-f-n. > > Any opinions, please? Depending on the opinions I will implement the > approach this week and see if it works as expected. > > Regards > hmw > >