首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在babashka的一个目录上

在babashka的一个目录上
EN

Stack Overflow用户
提问于 2022-10-22 10:00:14
回答 2查看 50关注 0票数 0

我试图在babashka中遍历fp,并发现在脚本bb-test中运行(shell "cd ..")会导致错误:

代码语言:javascript
复制
----- 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

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-10-22 14:00:28

您不能在babashka中更改工作目录(这是一个来自JVM派生环境的限制)。但是,您可以在其他目录中生成新进程:

代码语言:javascript
复制
(require '[babashka.process :refer [shell]])

(shell {:dir ".."} "whatever")
票数 1
EN

Stack Overflow用户

发布于 2022-10-22 13:01:35

cd是shell内建的;您不能在外壳之外调用它。因此,您想要做的是使用更改后的“当前工作目录”运行您的命令。这可以在sh with the :dir option中完成。例如。

代码语言:javascript
复制
(-> (shell/sh "ls" :dir "/etc") :out)

这将列出/etc的内容,无论您在哪里调用脚本。

(正如问题的注释中提到的,这是关于调用git命令的: git还允许通过GIT_WORK_TREE env-var更改其根目录,这可以通过:env选项从sh更改,但是更改cwd更简单)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74162586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档