使用 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.

打开