2014-11-05 27 views
5

Cosa fa questo comando?Cosa fa questo comando? "exec bash -l"

exec bash -l 

Ho trovato questo comando come parte di un file di testo di richiamo erano ho scritto alcune istruzioni su come creare una chiave SSH e clonare un repo git, ma ho scritto molto tempo fa e non riesco a ricordare cosa fa.

risposta

11

exec esegue un comando specificato, sostituendo il processo corrente anziché avviare un nuovo sottoprocesso.

Se si digita

bash -l 

al prompt della shell, che richiamerà un nuovo processo shell (il -l rende una shell di login). Se esci da quel processo di shell, tornerai alla tua shell originale.

Digitando

exec bash -l 

significa che il nuovo processo shell sostituisce il processo di shell corrente. Probabilmente è un po 'meno dispendioso in termini di risorse.

Il motivo per farlo è probabilmente il modo in cui la nuova shell imposta il proprio ambiente (leggendo il proprio .bashrc, .bash_profile, ecc.).

Vedere la documentazione bash per ulteriori informazioni:

(Si dovrebbe essere in grado di leggere il manuale sul proprio sistema digitando info bash.)

+0

Grazie! Bella risposta – matiascelasco

1

Questo sostituirà la shell corrente con una nuova shell bash eseguita come shell di login.

+2

Esso non solo eseguirlo; 'bash -l' senza 'exec' lo fa. Vedi la mia risposta. –