Откройте новую вкладку терминала и выполните скрипт

19051
ThomasReggi

Мне нужно объединить два сценария 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' 
5

5 ответов на вопрос

7
user495470

Я не знаю лучшего способа создать новую вкладку, но вы можете запустить команду в самой передней вкладке или в окне с помощью 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 
Вы знаете, есть ли способ кроме использования команды do script? Хотите запустить команду, используя Hyper Terminal, который не поддерживает этот синтаксис Borat.sagdiyev 6 лет назад 0
1
bbezanson

Here is a snippet we use. I would suggest:

  • Put this into a function, like one called "tab"
  • for the command use a variable that you pass into the function

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

Самый простой способ - использовать "ttab"

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

Просто запустите ttab 'ls -la'здесь ls -laкоманду, которую я хочу выполнить на новой вкладке.

Примечание: ttabтребуется установка NPM

0
adayzdone

Пытаться

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' 
0
Hauke Hell

Похоже на ответ адайздоне, но немного отличается:

osascript -e 'tell application "Terminal" to activate' \ -e 'tell application "System Events" to keystroke "t" using ' \ -e 'tell application "Terminal" to do script "echo hello" in front window'