Скрипт, запускающий команды на двух терминалах

Мне нужно сделать .command файл сценария / пакетный. Запуск его (двойной щелчок) должен выполнить следующие вещи:

  1. Откройте окно терминала (A)
  2. Запуск команды, которая открывает папку, в которой находится файл (возможно, это cd "dirname "$0"")
  3. Запустите команду
  4. Откройте окно терминала (B)
  5. Запуск той же команды в точке 2
  6. Запустите команду

1 ответ

Учитывая, что вы явно хотите создать терминальные окна, рассмотрите возможность создания приложения с помощью AppleScript:

  • открыто Script Editor (до 10,9, AppleScript Editor)
  • Вставьте код ниже.
  • Сохранить как приложение (с помощью всплывающего списка в Save As диалог) в нужную папку.
# Determine the folder in which this app is located.
set thisFolder to do shell script "dirname " & quoted form of POSIX path of (path to me)

# Sample commands to execute in the new windows.
set cmds to {"date", "echo $$"}

tell application "Terminal"
    # Create 2 new windows, change to the
    # this app's folder, and execute the respective command.
    repeat with i from 1 to 2
        do script "cd " & quoted form of thisFolder & "; " & item i of cmds
    end repeat
    # Activate Terminal.app
    activate
end tell

Причина, по которой я рекомендую использовать приложение более *.command файл заключается в том, что последний сам сначала откроется в окне терминала, прежде чем создавать нужные окна, что может привести к нарушению внешнего вида (и, в зависимости от ваших настроек Terminal.app, может оставить дополнительное окно открытым).

Кроме того, вы можете превратить это в добродетель и использовать *.command собственное окно файла как ваше 1-ое окно терминала, и создайте только одно дополнительное.

Другие вопросы по тегам