打开新的终端选项卡并执行脚本

打开新的终端选项卡并执行脚本

我需要合并两个 osascript 脚本,这样我就可以用一个命令打开一个新的终端选项卡并echo hello在该新选项卡中执行类似的脚本。

这将打开一个新的终端选项卡。

osascript -e 'tell application "Terminal" to activate' -e 'tell application "System Events" to tell process "Terminal" to keystroke "t" using command down'

这将打开一个新窗口并运行echo hello

osascript -e 'tell app "Terminal" do script "echo hello" end tell'

答案1

最简单的方法是使用“ttab”

https://www.npmjs.com/package/ttab

只需ttab 'ls -la'在这里运行ls -la我想在新选项卡中执行的命令。

注意:ttab需要安装NPM

答案2

我不知道有没有更好的方法来创建新选项卡,但您可以使用 在最前面的选项卡或窗口中运行命令do script "" in window 1

tell application "Terminal"
    activate
    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 "echo a" in window 1
end tell

答案3

以下是我们使用的代码片段。我建议:

  • 将其放入一个函数中,例如名为“tab”的函数
  • 对于命令,使用传递给函数的变量

    osascript 
        -e "tell application \"Terminal\" to activate" \
            -e "tell application \"System Events\" to keystroke \"t\" using {command down}" \
            -e "do script \"echo hello\" in front window" \
        -e "end tell"
        > /dev/null
    

答案4

尝试

osascript -e 'tell application "Terminal" to activate' -e 'tell application "System Events" to tell process "Terminal" to keystroke "t" using command down' -e 'tell application "Terminal" to do script "echo hello" in tab 2 of window 1'

相关内容