Итак, как часть моего рабочего процесса прямо сейчас, каждый раз, когда я запускаю проект, я открываю два окна терминала рядом с ним - одно для манипулирования и мониторинга git
, а другое для манипулирования и мониторинга gulp/grunt
. В настоящее время я открываю эти окна вручную, перехожу к соответствующим корням и выполняю начальные команды - это становится очень утомительным и отнимает много времени.
Я искал способ автоматизировать этот процесс и удалить из него некоторые ручные шаги, и я добился определенного прогресса - я написал файл .command
который при двойном щелчке открывает два новых терминала Windows и выполняет сценарии, которые я указал.
cd "$(dirname "$0")/_launchscripts/"
open -a Terminal.app ./git.command
open -a Terminal.app ./grunt.command
Структура файла для наглядности:
_launch.command
_launchscripts/
git.command
grunt.command
Чтобы обойти окно терминала, выходящее сразу после завершения, я узнал, что вы можете просто открыть новый сеанс оболочки входа в систему с помощью bash -l
. Итак, мои git.command
и grunt.command
выглядят так:
cd "$(dirname "$0")/../build/path/to/root"
[git or grunt status commands]
bash -l
Проблема в том, что в каждом терминальном окне открыто две сессии bash, одна вложена в другую. Это немного раздражает, так как окно терминала теперь выдает «Вы уверены, что хотите закрыть это окно, запустив bash(2)?«При закрытии, а не при закрытии сразу - но, что более важно, я чувствую, что любые дальнейшие усилия, которые я предприму, чтобы копать глубже, просто усложнят это. Я хочу вернуть это к простоте и элегантности.
Должен быть более простой способ сделать это. Можно ли при двойном щелчке вызвать более одного окна оболочки, выполнить несколько простых команд в каждой и вернуться к исходному приглашению оболочки - или хотя бы открыть новую оболочку и убить родительский элемент? Я также открыт для любых умных альтернатив, я уверен, что есть и другие подходы, которые я недостаточно осведомлен, чтобы рассмотреть.