gpt4 book ai didi

macos - 在 shell 脚本中调用 cd

转载 作者:行者123 更新时间:2023-11-29 09:34:27 25 4
gpt4 key购买 nike

我有一个 shell 脚本打开一个 perl 脚本。这个 perl 脚本应该在终端中打开。我可以打开终端,但无法调用 cd 来访问 perl 脚本的位置

    $PROJECT_DIR = "$PROJECT_DIR";

echo "$PROJECT_DIR" > "$PROJECT_DIR/Testing/buildProductPathHello.txt"

osascript -e 'tell app "Terminal"
do script "pwd"
do script "cd $PROJECT_DIR" in window 1
do script "ls" in window 1
do script "./RunTests.pl" in window 1
end tell'

变量 $PROJECT_DIR 包含路径,我通过将路径写入文件来验证这一点。最终,命令 cd $PROJECT_DIR 不起作用。不对变量的内容执行 cd。

snapshot of terminal

snapshot 2PS:这是在带有 bash shell 的 mac 上

最佳答案

每个脚本都作为自己的进程运行,做自己的事,然后退出。脚本的状态,包括环境变量和它的当前目录定义,在它退出时被丢弃——所以你不能指望除了“cd”之外什么都不做的脚本在以后仍然有效。

如果相反,你做了这样的事情:

do script "cd $PROJECT_DIR; ls; ./runTests.pl"

...那么这将在一个 shell 中执行所有三个命令,结果将如您所愿。

关于macos - 在 shell 脚本中调用 cd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9929748/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com