如何在OrgBabel中加载bash(而不是sh)以启用&x2B;开始吧?
我看到了使用如何在OrgBabel中加载bash(而不是sh)以启用&x2B;开始吧?,bash,org-mode,org-babel,Bash,Org Mode,Org Babel,我看到了使用 #+BEGIN_SRC bash 但是在我的组织模式版本(elpa,org 20150316)中,在自定义变量org babel load languages的菜单中,没有“bash”项,只有shell。正在尝试计算代码,例如 #+BEGIN_SRC bash ls -l #+END_SRC 我明白了 org babel execute src block:bash没有org babel execute函数 我错过了什么 谢谢。请查看org babel sh command(默
#+BEGIN_SRC bash
但是在我的组织模式版本(elpa,org 20150316)中,在自定义变量org babel load languages
的菜单中,没有“bash”项,只有shell。正在尝试计算代码,例如
#+BEGIN_SRC bash
ls -l
#+END_SRC
我明白了
org babel execute src block:bash没有org babel execute函数
我错过了什么
谢谢。请查看
org babel sh command
(默认为“sh”)的值,并且只使用“sh”作为语言。似乎bash
包含在shell
标识符中
因此,您必须在自定义变量org babel load languages
中激活insert“Shell脚本”
测试版本:来自MELPA的20150810。对我来说,我做到了
(require 'package)
(add-to-list 'package-archives '("org" . "http://orgmode.org/elpa/") t)
如图所示,以确保我拥有最新的Org版本(香草Emacs附带自己的Org版本)。然后,在执行M-x列表包之后,我以交互方式安装了org
包。那我就可以了
(org-babel-do-load-languages 'org-babel-load-languages
'(
(shell . t)
)
)
它允许#+BEGIN\u SRC bash
如果您使用的是直接/使用软件包,请尝试以下操作:-
(use-package ob-shell
:straight nil
:after org
:config
(setq org-babel-default-header-args:sh '((:results . "output")))
(setq org-babel-default-header-args:shell '((:results . "output"))))
只是一个想法,但是你能试试#+begin#src sh:shebang“#!/bin/bash”
?这对我给出的示例有效,所以如果你把你的评论变成答案,我应该接受。虽然我最初的目的是使用一些处理关联数组的能力,但“:shebang”解决方案并没有提供这种能力。我认为所有这些都指向了ob-sh.el,melpa上org的一部分,没有我预期的一些补丁。问题是melpa和elpa都有一个旧版本的ob-sh.el,没有bash更改。[org git]上的版本(git://orgmode.org/org-mode.git)没有启用bash的ob-shell.el版本。在我的init.el中需要/加载这个版本,类似于(加载文件“~/org git/org mode/lisp/ob shell.el”)
允许#+BEGIN#SRC bash
并允许org babel处理关联数组。是的,ob shell.el
是关键。我已经在我的init.el中设置为bash
。我认为问题在于ob-sh.el,melpa上org的一部分(我使用的是melpa,而不是我所说的elpa),没有提到bash
。也许这意味着它没有一些补丁,我需要进一步研究它,也许会得到一个更高的版本…在检查之后,上面的var似乎从Git组织中消失了。它似乎已被org babel shell名称所取代
。也许把“bash”作为它的第一个组成部分。。。如果它确实存在于您的组织版本中?您使用的是什么版本的组织巴别塔?问题是,即使是Melpa或Elpa的最新版本,也没有org babel shell名称
或任何其他bash处理。不确定是授权还是遗漏。我现在使用的是org Git repo上的ob-shell.el,而不是Elpa/Melpa上提供的ob-sh.el,它提供了我所需要的一切。还有意思的是为什么Elpa/Melpa发布了一个旧版本。我使用的是组织模式版本8.3beta(release_8.3beta-902-gac1298@/path/to/orgmode.git)!??请参阅,特别是Eric Schulte(巴别塔的主要作者)的评论。不过,我不确定我是否完全理解它。如果不明显,可以将org babel do load languages代码片段添加到.emacs文件中。