从 babel 的 shell 代码的结果中删除命令行提示

Remove the command line prompt from results of the babel's shell code

根据对 org 的 babel 源代码的 运行 命令

#+BEGIN_SRC shell :session hugo :results output
hugo new posts/my_first_post.md
#+END_SRC

#+RESULTS:
: /home/me/Documents/quickstart/content/posts/my_first_post.md created
: (base) [01;32mme@alpha[00m:[01;34m~/Documents/quickstart[00m:

有提示后缀: (base) [01;32mme@alpha[00m:[01;34m~/Documents/quickstart[00m:

其他例子

#+BEGIN_SRC shell :session hugo  :results output
cat ./content/posts/my_first_post.md 
#+END_SRC

#+RESULTS:
: ---
: title: "My_first_post"
: date: 2019-09-06T13:46:46+08:00
: draft: true
: ---
: 
: (base) [01;32mme@alpha[00m:[01;34m~/Documents/quickstart[00m:

如何通过配置 babel 的头参数来删除后缀。

最简单的方法可能就是在您的初始代码块中设置您的提示,PS1。 Org-babel 确实尝试用 org-babel-sh-strip-weird-long-prompt 清除提示,但它似乎不容易定制。所以,你可以只使用

#+BEGIN_SRC shell :session hugo :results output
PS1="> "
echo
#+END_SRC

由于您正在使用 :session,因此您应该只在初始块中需要它。

注意:看起来这应该只是使用会话时的问题,因为 shell 不是 运行 通过 comint 否则