如何在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文件中。