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'
Run Code Online (Sandbox Code Playgroud)
变量$PROJECT_DIR包含路径,我通过将路径写入文件来验证这一点.最终,命令cd $PROJECT_DIR是不起作用的命令.不对变量的内容执行cd.

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