【发布时间】:2019-09-05 18:03:26
【问题描述】:
我在 bash 中有以下 osascript。
这对我来说已经很长一段时间了,但是最近我使用 HomeBrew 将我的 Apple 机器上的 bash 版本从 3.x 升级到 5.x。这在所有情况下都可以正常工作(除了 osascript),例如单击终端应用程序图标或使用 sudo,我总是得到 5.x 版的 bash。但是,当下面的脚本运行时,它会打开一个带有旧 3.x 版本 bash 的窗口。
有谁知道如何让 osascript 也使用我的新的默认升级版 bash?或者如果不是新的默认值,那么就强制它使用我想要的版本?
我确实尝试过替换:
tell application "Terminal"
与
tell application "/usr/local/bin/bash"
根本没有弹出窗口。
这是脚本:
if [ "$APPLE_WINDOW_TYPE" == "window" ]; then
osascript<<EOF
tell application "Terminal"
do script "cd \"`pwd`\"; echo; echo; $1 $2 $3 $4 $5 $6 $7 $8 $9"
end tell
EOF
elif [ "$APPLE_WINDOW_TYPE" == "tab" ]; then
osascript<<EOF
tell application "Terminal"
activate
delay 0.5
tell application "System Events" to keystroke "t" using command down
repeat while contents of selected tab of window 1 starts with linefeed
delay 0.01
end repeat
do script "cd \"`pwd`\"; echo; echo; $1 $2 $3 $4 $5 $6 $7 $8 $9" in window 1
end tell
EOF
sleep 2
fi
基本上我使用 oascript 来调出一个新的 bash 窗口来在不同的窗口中运行各种进程。
【问题讨论】: