Risposte:
Il ;
separa semplicemente un comando da un altro. Say &&
dice di eseguire il seguente comando solo se il precedente ha avuto esito positivo
cd /home; ls -al
Questo cd /home
e anche se il cd
comando fallisce ( /home
non esiste, non hai il permesso di attraversarlo, ecc.), Verrà eseguito ls -al
.
cd /home && ls -al
Questo funzionerà solo ls -al
se ha cd /home
avuto successo.
a && b
se a restituisce zero codice di uscita, viene eseguito b .
a || b
se a restituisce un codice di uscita diverso da zero, viene eseguito b .
a ; b
a viene eseguito e quindi b viene eseguito.
cd /fakedir; ls -al
Viene eseguito ls
nella directory corrente perché cd /fakedir
non funzionerà e la shell ignorerà lo stato di uscita diverso da zero.
cd /fakedir && ls -al
Poiché l' &&
operatore continuerà solo se il comando precedente è uscito normalmente (stato zero), non ls
verrà eseguita alcuna operazione.
Vi sono altri operatori, come ad esempio &
un processo in background. Spesso posto alla fine di un comando, può essere messo nel mezzo di una catena.
;
è davvero pericoloso (almeno con il comando rm), per esempiocd /some/dir; rm -fr ./*
. Quindi con tale operazione distruttiva devi essere sicuro di essere nel posto giusto prima di eseguire rm. Il comando giusto ècd /some/dir && rm -fr ./*