i_r*_*aqz 2 macos bash terminal applescript
我有一个打开perl脚本的shell脚本.这个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.

 PS:这是在带有bash shell的mac上
PS:这是在带有bash shell的mac上
每个脚本都作为自己的进程运行,完成它的事情并退出.脚本的状态(包括环境变量及其当前目录定义)在退出时将被丢弃 - 因此您不能指望除"cd"之外什么也不做的脚本以后仍然有效.
如果相反你做了这样的事情:
do script "cd $PROJECT_DIR; ls; ./runTests.pl"
...然后,这将在单个shell中执行所有三个命令,结果将是您所期望的.