[英]org-mode babel sh script + escaped(?) ~ char for home directory?
我在组织模式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中?)...
我的问题是:如何解决?
〜不会被shell扩展,因为它是在Emacs中设置的,并且是文字字符串'〜'。 为了获得扩展,您需要通过eval运行它:
directory=$(eval echo $directory)
在尝试使用它之前。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.