出现这个问题的原因是在新版本的 org-mode 中 org-babel-check-confirm-evaluate 从一个宏变成了函数。
但在编译新 org-mode 时,若加载了旧 org-mode,则会将 org-babel-check-confirm-evaluate 看成宏而不是函数。
解决的方法是删掉 org 或 org-plus-contrib 中的所有 elc 文件,并用 byte-recompile-directory 重新编译一次。
要执行 shell 代码块,需要用 shell 替换 sh,即之前是 #+BEGIN_SRC sh 现在要改成 #+BEGIN_SRC shell

