org begin-src 中 shell是shell 还是 sh?

我查了org manual是sh,但有些有说明是shell,我也不知道最新的org目前是哪种了?

这个模式的解析方式似乎是:根据提供的字符串调用对应的模式(mode)
#+BEGIN_SRC php
#+END_SRC
就调用了php-mode参与解析
所以,看一下你那边是什么解析方案吧
我这边是sh-mode shell-mode都有
测试的结果是:二者等价(但是从解析的效果上面来看 shell似乎更合适)

看看 org-babel-execute:sh 的定义,用哪个不言自明:

(defun org-babel-execute:sh (body params)
  "Execute a block of sh commands with Babel."
  (let ((shell-file-name 'sh))
    (org-babel-execute:shell body params)))

除了 sh 之外,还有bash zsh fish csh ash dash ksh mksh posh

image

2 个赞

org-babel-shell-names

其实,大不了 #+CALL 自己调用SHELL 开干也不是不可以