3

В Linux есть команда x-terminal-emulator , которая активирует новый эмулятор терминала. И я считаю, что это работает с установленным по умолчанию эмулятором.

  1. У OS X есть подобная команда или та же самая команда?
  2. У всех версий Mac OS X есть эта опция?

Я хочу, чтобы bash-скрипт запускал новый bash-скрипт в новом окне терминала.

У меня нет Mac, чтобы проверить это прямо сейчас.

1 ответ1

3

x-terminal-emulator не существует в OS X. Он будет полагаться на альтернативную систему, которая просто не работает в OS X. Вместо этого он определяет приложения по умолчанию для определенных типов MIME, схем URI или типов файлов. , Проще говоря, это так.

Самый простой и наиболее удобный способ запуска нового окна Terminal.app из оболочки - запустить следующую команду AppleScript:

osascript -e 'tell app "Terminal" to do script ""'

Если вам дополнительно требуется сосредоточиться на этом новом окне терминала, запустите после этого:

osascript -e 'tell app "Terminal" to activate'

Чтобы запустить скрипт оболочки из этого окна, просто укажите do script путь к скрипту оболочки:

osascript -e 'tell app "Terminal" to do script "/path/to/script.sh"'

Опять же, если вам требуется фокусировка после этого, запустите вторую команду activate сверху.


Некоторым пользователям OS X может быть установлен iTerm2 в качестве замены для Terminal.app по умолчанию, который поставляется с OS X. Хотя он не регистрируется как терминал "по умолчанию" - в общем, в OS нет такого понятия как "терминал по умолчанию" X - некоторые пользователи могут использовать его для определенных схем URL. См .: Настройка iTerm2 в качестве терминала по умолчанию (OSX Lion)

В противном случае пользователи не смогут настроить "предпочтение" для выбора iTerm2 вместо Terminal.app. Если вы хотите использовать iTerm2 вместо Terminal.app, вы можете проверить следующий ответ. iTerm2 не принимает do shell script и требует от вас ввода write text в его запрос.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .