【问题标题】:Opening updated version of bash with osascript使用 osascript 打开更新版本的 bash
【发布时间】: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 窗口来在不同的窗口中运行各种进程。

【问题讨论】:

    标签: bash homebrew osascript


    【解决方案1】:

    所以我想通了,这不是一个很好的解决方案,但它确实有效。

    您无法更改 Apple 在 /bin/sh(或 /bin/bash)放置的内容,因此 brew 在 /usr/local/bin/bash 放置了更新的 bash,因此您需要将 .sh 文件的标题更改为 @987654325 @ 然后更新的 shell 将通过 osascript 打开。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-09
      • 2014-06-19
      • 2014-07-18
      • 2011-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多