Сценарий Bash, который запустит второй процесс терминала?

Мне нужен сценарий, который сможет запустить второй экземпляр терминала и передать команду непосредственно этому экземпляру, в то время как он продолжит свое собственное выполнение.

Это запуск скрипта Python, на котором будет размещаться сервер, в то время как основной экземпляр терминала будет продолжать выполнять свою серию выполнений в течение 30 секунд (например), тогда он сможет убить PID скрипта Python и убить этот вторичный процесс терминала и продолжайте, пока он не завершится.

Кто-нибудь знает, как это сделать? Исходя из Windows, было бы очень легко заставить файл BAT выполнить второй файл BAT в своей собственной среде, а затем убить его на более позднем этапе.

Вам действительно нужно окно терминала для второго процесса? Если нет, будет ли достаточно запустить серверный скрипт run-server &?
Таб, например, называйте как хотите. Да, мне это нужно.

Ответы (2)

Вы можете использовать do scriptкоманду AppleScript для запуска команды в новом окне терминала:

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

Однако он не запускает второй процесс или экземпляр для терминала. В OS X обычно существует только один экземпляр для каждого приложения, хотя вы можете использовать его open -nдля открытия другого экземпляра.

Спасибо, не знаю, как я это проглядел. На прошлой неделе я пробовал разные вещи, и это делает именно то, что я хочу. Спасибо.

Основываясь на предыдущем ответе, вы можете использовать do scriptдля запуска второго окна терминала, а затем даже последовательно выполнять несколько команд, используя-e

osascript -e 'tell app "Terminal" to do script "uptime"' -e 'tell app "Finder" to delete file "filename" on Desktop'

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