Відкрийте нову вкладку терміналу та виконайте сценарій


5

Мені потрібно об'єднати два сценарії oascript, так що за допомогою однієї команди я можу відкрити нову вкладку терміналу та виконати сценарій, як 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'

Відповіді:


0

Найпростіший спосіб - за допомогою "ttab"

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

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

Примітка: ttabпотрібна установка NPM


9

Я не знаю кращого способу створення нової вкладки, але ви можете запустити команду на вкладці або вікні на передній панелі 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

1

Ось фрагмент, який ми використовуємо. Я б запропонував:

  • Помістіть це у функцію, як-от названа "вкладка"
  • для команди використовуйте змінну, яку ви передаєте у функцію

    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
    

0

Спробуйте

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

Схожий на відповідь адайздона , але трохи інший:

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'
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.