2014-11-05 16 views
5

Co robi to polecenie?Co robi to polecenie? "exec bash -l"

exec bash -l 

znalazłem tego polecenia jako część pliku tekstowego przypomnienia były pisałem kilka wskazówek dotyczących sposobu tworzenia klucza ssh i sklonować repo git, ale napisałem go dawno temu i nie pamiętam co to robi.

Odpowiedz

11

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.)

+0

Dzięki! Świetna odpowiedź – matiascelasco

1

Spowoduje to zastąpienie bieżącej powłoki przez nową powłokę powłoki bash uruchamianą jako powłoka logowania.

+2

To nie tylko go wykonać; 'bash -l' bez' exec' to robi. Zobacz moją odpowiedź. –