Есть ли способ открыть серию новых окон терминала и запускать команды в одном скрипте? - PullRequest
3 голосов
/ 27 октября 2011

Каждый день я выполняю следующие команды:

[0] Запуск терминала

  1. Открыть окно -> memcached
  2. Открыть окно -> redis-server
  3. Открыть окно -> memcached
  4. Открыть окно -> devo
  5. Открыть окно -> cd /some/path
  6. / some / path$ -> rails s --port=3002
  7. Открыть окно -> cd /other/path
  8. / other / path $ -> rails s --port=3000

Можно ли выполнить эти шаги водин сценарий?Я схожу с ума, делая эти шаги каждый раз, когда я перезагружаю свою систему

Ответы [ 2 ]

10 голосов
/ 27 октября 2011

Создать яблочный скрипт.Вам просто нужно будет запустить яблочный скрипт, и он сделает все за вас:

tell application "Terminal"
    activate
    do script "memcached" in window 1
    do script "redis-server" -- Each do script opens a new window
    do script "memcached"
    do script "devo"
    do script "cd "
    do script "rails s --port=3002" in window 1 -- does script in last opened window
    do script "cd "
    do script "rails s --port=3000" in window 1 -- does script in last opened window
end tell

Сохраните его как приложение, чтобы дважды щелкнуть по нему, чтобы запустить.Вы также можете назначить его для запуска при запуске системы или даже для ярлыка с необходимой сторонней программой.

0 голосов
/ 27 октября 2011

Что ж, если вы не возражаете против использования xterm в качестве терминала, вы можете сделать это в своих сценариях оболочки:

xterm -e $command

Вы также можете использовать команду open, которая уникальна дляMac:

open -a /Applications/Utilities/Terminal.app $command  #Full pathname to $command!

Например:

open -a /Applications/Utilities/Terminal.app /usr/bin/vim

Работает.

Вы также можете использовать сценарий оболочки:

open -a /Applications/Utilities/Terminal.app /home/david/foo.sh

ЧтоЯ не понял, как открыть команду, которая требует параметра командной строки.Если вам нужно это сделать, вам придется придерживаться xterm.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...