Открытие окна терминала в определенный каталог из сценария bash

Как я могу написать сценарий bash в Mac OS X, который открывает окно терминала в определенном каталоге? Я бы предположил что-то вроде:

open /Applications/Utilities/Terminal.app

Но это ничего не делает (возможно, это загружает уже открытое приложение терминала, а не запускает новое окно терминала). И, конечно же, он не переходит в каталог, поскольку я не указал это...

Ответы (3)

Вот небольшой скрипт, который я набросал:

#!/usr/bin/osascript
on run argv
  set dir to quoted form of (first item of argv)
  tell app "Terminal" to do script "cd " & dir
end run

Если вы сохраните это и сделаете исполняемым

chmod +x script_filename

а затем запустите его

script_filename ~/Desktop

затем он откроет новое окно терминала и перейдет в каталог в аргументе.

Начиная с Mac OS X Lion 10.7, если вы откроете папку с терминалом, в этом месте будет создан новый терминал. например, вы можете перетащить папку на значок приложения «Терминал» или на панель вкладок, чтобы создать новую вкладку, и есть «Службы» («Новый терминал в папке»), которые вы можете использовать из контекстного меню, чтобы открыть новое окно или вкладку для выбранная папка в Finder или других приложениях (или даже путь, выбранный в тексте).

Чтобы сделать то же самое из командной строки (или сценария оболочки):

open -a Terminal /path/to/folder

Это эквивалент командной строки перетаскивания папки на значок приложения терминала. (Вы также можете указать полный путь для Терминала, если хотите указать конкретную копию/версию приложения.)

Работает идеально!!

Я не уверен, работает ли следующее из сценария bash, но, по крайней мере, я узнал, как открывать определенные вкладки в определенных каталогах:

В разделе «Настройки» в разделе «Настройки» вы копируете профиль, который обычно хотите использовать. В Shell вы можете указать «Выполнить команду»: cd /some/directory. Вы также захотите проверить «Запустить внутри оболочки». При желании вы можете указать заголовок в разделе «Окно».

Добавьте больше профилей таким образом.

Затем закройте все окна терминала, затем откройте профиль в новом окне, плюс еще один профиль в новой вкладке, плюс еще один профиль в новой вкладке. Теперь у вас есть окно с тремя вкладками. Сохраните это как группу окон.

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

Открытый вопрос: как мне сказать Терминалу открыть новую группу окон из сценария bash?

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