Запускать несколько команд в нескольких окнах терминала с помощью одной строки bash - PullRequest
4 голосов
/ 13 июля 2010

Вот интересная проблема: использование метода AppleScript для запуска новой команды в окне терминала завершается ошибкой, если терминал «занят»; точнее, он откроет новое окно, но не сможет выполнить команду. Например, попробуйте скопировать + вставить эту строку в:

osascript -e 'tell application "Terminal" to do script "foo"'; osascript -e 'tell application "Terminal" to do script "bar"'; osascript -e 'tell application "Terminal" to do script "baz"';

Когда я запускаю это (я на Snow Leopard), я получаю три окна: в первом команда foo запускается, как и ожидалось; но в двух других я просто получаю пустое приглашение. И я получаю пустые приглашения во всех трех окнах, если я только что вставил команду; по-видимому, Терминал все еще занят обработкой операции вставки.

Теперь AppleScript может быть не лучшим способом сделать это, но я действительно хочу написать скрипт, который по порядку запускает несколько окон терминала и запускает команду в каждом. Возможно, лучший способ сделать это с помощью bash-скрипта. Пока я могу создать псевдоним, я счастлив. Так как это сделать?

1 Ответ

2 голосов
/ 13 июля 2010

какие именно скрипты вы используете

Я изменил ваш код, чтобы проверить его

osascript -e 'tell application "Terminal" to do script "cd Desktop"'; osascript -e 'tell application "Terminal" to do script "cd .."'; osascript -e 'tell application "Terminal" to do script "ls"';

и это, кажется, работает нормально

...