2つのosascriptスクリプトをマージして、1つのコマンドで新しいターミナルタブを開き、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'
最も簡単な方法は「ttab」を使用することです
https://www.npmjs.com/package/ttab
ただ走れ ttab 'ls -la'
ここに ls -la
は、新しいタブで実行したいコマンドです。
注:ttab
にはNPMのインストールが必要です
新しいタブを作成するためのより良い方法はわかりませんが、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
これが私たちが使用するスニペットです。私は提案します:
コマンドには、関数に渡す変数を使用します
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
adayzdoneの答え に似ていますが、少し異なります:
osascript -e 'tell application "Terminal" to activate' \
-e 'tell application "System Events" to keystroke "t" using {command down}' \
-e 'tell application "Terminal" to do script "echo hello" in front window'
試してみてください
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'