在Babashka中执行(shell "cd ..")报错,如何解决?
在Babashka中执行
cd命令报错的解决办法 错误原因
cd是Shell的内置命令,并非独立的可执行程序。Babashka的shell函数会尝试将传入的命令当作可执行文件直接调用,因此找不到"cd"程序,触发java.io.IOException错误。
解决方案
根据你的需求选择以下方式:
修改Babashka进程的全局工作目录
使用Babashka官方推荐的babashka.fs库中的cd函数,它会直接改变当前进程的工作目录,后续所有文件操作都会基于新路径:(require '[babashka.fs :as fs]) (fs/cd "..")在子Shell中临时切换目录执行命令
如果只需要在单次命令执行时切换目录(不影响主进程工作目录),可以用sh -c将命令包裹在子Shell中执行:(shell "sh -c 'cd .. && echo 当前目录: $PWD'")替换
echo 当前目录: $PWD为你实际需要执行的命令即可。
内容的提问来源于stack exchange,提问作者Jack Gee
相关产品推荐
相关产品推荐

