Проектът, върху който работя, има няколко изпълними скриптав хранилището. Тези скриптове всъщност са инструменти, които автоматизират някои задачи по разработването и ги призовавам само когато съм в репо-то и работят само върху файлове в репо-сделката.Тази типична работна сесия изглежда така:
$ cd $REPO
$ ./tools/start-session
$ some-script some arguments
$ other-script other arguments
С други думи, start-session
скриптът просто добавя подходящ запис към $PATH
променлива.
Бих искал да го автоматизирам по-нататък, за да не трябва да се обадя $REPO/tools/start-session
скрипт. Това, което искам да постигна, е да направя баш автоматично да открива, че съм в репо-директора си и да добавя подходящо влизане $PATH
, Въпросът е, че имам много работни копия намоят репо и инструментите се различават малко във всеки клон, ходя често между работните копия и бих искал моята черупка да видят какъв скрипт искам да се позове.
Как да направя това?
Единственото нещо, което мога да мисля, е, че $PS1
променливата се изпълнява всеки път, когато командата е завършена, за да мога по някакъв начин да закачам някои $PATH
- смяна на скрипта там с помощта на гръб, т.е. правя нещо като
PS1=`update-path`$PS1
Но това не е правилният начин.
Отговори:
1 за отговор № 1На правилния път, но не използвайте PS1
- ти искаш PROMPT_COMMAND
, Например:
PROMPT_COMMAND="ls"
ще изпълни ls
всеки път, когато се появи нов ред. Дали това ще ви реши проблема с корена, не мога да кажа, тъй като аз не съм сигурен, че го разбирам правилно.
0 за отговор № 2
Бих създал прост скрипт bash - нека го наречем cs (сесия за промяна) - който променя директорията и актуализира пътя, така че вместо
$ cd $REPO
$ ./tools/start-session
$ some-script some arguments
$ other-script other arguments
ще направиш
$ cs $REPO
$ some-script some arguments
$ other-script other arguments
Нещо като това:
#!/bin/bash
cd $1
./tools/start-session