我在 org-mode babel 下有这个小sh脚本:
#+NAME: testHomeDir
#+BEGIN_SRC sh :var directory="./"
set -e
cd $directory
ls | head -5
#+END_SRC
注意:set -e
是否会在发生错误时立即停止脚本。
该脚本适用于完整路径:
#+CALL: testHomeDir("/home/picaud/Temp")
#+RESULTS: :RESULTS: current issues.pdf AnnotatedPDF Bitbucket compareScript.wls Data :END:
但是,当与~
(我的主目录)一起使用时,它不再起作用:
#+CALL: testHomeDir("~/Temp")
我明白了
sh: 4: cd: 不能 cd 到 ~/Temp
错误信息。
另请注意
#+CALL: testHomeDir("\~/Temp")
#+CALL: testHomeDir("\\~/Temp")
也不行。
我猜这个~
角色在某个地方被转义了(在 Emacs 中?在 sh 中?)......
我的问题是:如何解决这个问题?