exec
wykonuje określone polecenie, zastępując bieżący proces zamiast uruchamiając nowy podproces.
Jeśli wpiszesz
bash -l
w linii poleceń powłoki, to powołać nowy proces powłoki (the -l
sprawia, że powłoka logowania). Jeśli opuścisz ten proces powłoki, powrócisz do oryginalnego procesu powłoki.
Wpisanie
exec bash -l
oznacza, że nowy proces powłoki zastępuje bieżący proces powłoki. Prawdopodobnie wymaga nieco mniej zasobów.
Powodem tego jest prawdopodobnie to, że nowa powłoka ustawia swoje otoczenie (czytając twoje .bashrc
, .bash_profile
itd.).
Zobacz dokumentację bash uzyskać więcej informacji:
(powinien być w stanie przeczytać instrukcję na własnym systemie, wpisując info bash
.)
Dzięki! Świetna odpowiedź – matiascelasco