首页 > 解决方案 > 使用 :session 时,Org-mode sh 块在结果中显示 shell 提示

问题描述

我在 org 模式下遇到问题,当我在标题中使用:session时,shell 源块在结果中包含 shell 提示。

每当代码中有空行或以注释开头的行时,似乎都会发生这种情况。

我已经尝试取消设置PS1变量或将其设置为空字符串 ( "" ),但代码块的执行会因其中任何一个而挂起。

例子:

不使用 :session 时,结果正确显示:

#+begin_src sh :results output replace :exports both
echo "TEST1"
#COMMENT
echo "TEST2"

echo "TEST3"
#COMMENT

echo "TEST4"
#COMMENT

#+end_src
#+RESULTS:
: TEST1
: TEST2
: TEST3
: TEST4

使用 :session 时,结果将为每个空行或以注释开头的行包含一次 shell 提示。见下图:

#+begin_src sh :results output replace :exports both :session test
echo "TEST1"
#COMMENT
echo "TEST2"

echo "TEST3"
#COMMENT

echo "TEST4"
#COMMENT

#+end_src
#+RESULTS:
: TEST1
: sh-5.0$ TEST2
: sh-5.0$ TEST3
: sh-5.0$ sh-5.0$ TEST4

这是使用 :session 时“测试”缓冲区的输出:

sh-5.0$ echo "TEST1"
TEST1
sh-5.0$ #COMMENT
sh-5.0$ echo "TEST2"
TEST2
sh-5.0$ 
sh-5.0$ echo "TEST3"
TEST3
sh-5.0$ #COMMENT
sh-5.0$ 
sh-5.0$ echo "TEST4"
TEST4
sh-5.0$ #COMMENT
sh-5.0$ echo 'org_babel_sh_eoe'
org_babel_sh_eoe
sh-5.0$ 

标签: emacsorg-mode

解决方案


推荐阅读