2

Итак, как часть моего рабочего процесса прямо сейчас, каждый раз, когда я запускаю проект, я открываю два окна терминала рядом с ним - одно для манипулирования и мониторинга 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)?«При закрытии, а не при закрытии сразу - но, что более важно, я чувствую, что любые дальнейшие усилия, которые я предприму, чтобы копать глубже, просто усложнят это. Я хочу вернуть это к простоте и элегантности.

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

0