使用 osascript 打开 bash 的更新版本
Opening updated version of bash with osascript
我在 bash 中有以下 osascript。
这对我来说已经运行了很长一段时间,但是最近我使用 HomeBrew 将我的 Apple 机器上的 bash 版本从 3.x 升级到 5.x。这在所有情况下(osascript 除外)都可以正常工作,例如单击终端应用程序图标或使用 sudo,我总是获得 bash 的 5.x 版本。然而,当下面的脚本 运行s 它打开一个 window 与旧 3.x 版本的 bash.
有谁知道如何让 osascript 也使用我新的默认升级版本 bash?或者,如果不是新的默认版本,那么就强制它使用我想要的版本?
我确实尝试替换:
tell application "Terminal"
和
tell application "/usr/local/bin/bash"
根本没有显示 window。
这是脚本:
if [ "$APPLE_WINDOW_TYPE" == "window" ]; then
osascript<<EOF
tell application "Terminal"
do script "cd \"`pwd`\"; echo; echo; "
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; " in window 1
end tell
EOF
sleep 2
fi
基本上我使用 oascript 在单独的 windows.
中创建一个新的 bash window 到 运行 各种进程
所以我想通了,这不是一个很好的解决方案,但它确实有效。
您无法更改 Apple 在 /bin/sh
(或 /bin/bash
)处放置的内容,因此 brew 在 /usr/local/bin/bash
处放置更新的 bash,因此您需要做的是将 .sh
文件的 header 更改为 #!/usr/local/bin/bash
,然后更新的 shell 将通过 osascript
.
打开
我在 bash 中有以下 osascript。
这对我来说已经运行了很长一段时间,但是最近我使用 HomeBrew 将我的 Apple 机器上的 bash 版本从 3.x 升级到 5.x。这在所有情况下(osascript 除外)都可以正常工作,例如单击终端应用程序图标或使用 sudo,我总是获得 bash 的 5.x 版本。然而,当下面的脚本 运行s 它打开一个 window 与旧 3.x 版本的 bash.
有谁知道如何让 osascript 也使用我新的默认升级版本 bash?或者,如果不是新的默认版本,那么就强制它使用我想要的版本?
我确实尝试替换:
tell application "Terminal"
和
tell application "/usr/local/bin/bash"
根本没有显示 window。
这是脚本:
if [ "$APPLE_WINDOW_TYPE" == "window" ]; then
osascript<<EOF
tell application "Terminal"
do script "cd \"`pwd`\"; echo; echo; "
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; " in window 1
end tell
EOF
sleep 2
fi
基本上我使用 oascript 在单独的 windows.
中创建一个新的 bash window 到 运行 各种进程所以我想通了,这不是一个很好的解决方案,但它确实有效。
您无法更改 Apple 在 /bin/sh
(或 /bin/bash
)处放置的内容,因此 brew 在 /usr/local/bin/bash
处放置更新的 bash,因此您需要做的是将 .sh
文件的 header 更改为 #!/usr/local/bin/bash
,然后更新的 shell 将通过 osascript
.