Jeśli dana komenda zawsze będzie poleceniem git, powinieneś po prostu użyć opcji --git-dir
i --work-tree
, aby powiedzieć git, co robić! (Lub jeśli robisz to bardzo często w trakcie wykonywania skryptu, ustaw zmienne GIT_DIR i GIT_WORK_TREE na odpowiednie ścieżki)
Jeśli to ogólne pytanie, uważam, że Andrzej ma początek w najlepszej propozycji: użyj podpowłoki. Właściwym sposobem na rozpoczęcie podpowłoce jest jednak to, aby użyć nawiasów, aby nie używać podstawienia polecenia (chyba, że faktycznie chcą uchwycić wyjście):
(cd $dir && run_command)
Innym rozwiązaniem, jak sugeruje Felix i ibread, będzie oczywiście działa, ale bądź ostrożny - jeśli polecenie, które wykonujesz, jest prawdopodobnie funkcją powłoki, to może również cd, a na końcu zmienić efekt cd -
. Najbezpieczniejszą rzeczą w ogólnym przypadku jest najpierw przechowywanie bieżącego katalogu w zmiennej.
jest cd - tak trudno wpisać, co innego patrzeć na to iść-narzędzia http: // code.google.com/p/go-tool/ –
znajduje się wewnątrz skryptu. nie ma nic wspólnego z leniwością. – primeminister