我试图在babashka中遍历fp,并发现在脚本bb-test中运行(shell "cd ..")会导致错误:
----- Error --------------------------------------------------------------------
Type: java.io.IOException
Message: Cannot run program "cd": error=2, No such file or directory
Location: /home/jack/Documents/clojure/leingit/./bb-test:120:1有什么想法吗?
发布于 2022-10-22 14:00:28
您不能在babashka中更改工作目录(这是一个来自JVM派生环境的限制)。但是,您可以在其他目录中生成新进程:
(require '[babashka.process :refer [shell]])
(shell {:dir ".."} "whatever")发布于 2022-10-22 13:01:35
cd是shell内建的;您不能在外壳之外调用它。因此,您想要做的是使用更改后的“当前工作目录”运行您的命令。这可以在sh with the :dir option中完成。例如。
(-> (shell/sh "ls" :dir "/etc") :out)这将列出/etc的内容,无论您在哪里调用脚本。
(正如问题的注释中提到的,这是关于调用git命令的: git还允许通过GIT_WORK_TREE env-var更改其根目录,这可以通过:env选项从sh更改,但是更改cwd更简单)
https://stackoverflow.com/questions/74162586
复制相似问题