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 /homee anche se il cdcomando fallisce ( /homenon esiste, non hai il permesso di attraversarlo, ecc.), Verrà eseguito ls -al.
cd /home && ls -al
Questo funzionerà solo ls -alse ha cd /homeavuto 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 lsnella directory corrente perché cd /fakedirnon 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 lsverrà 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 ./*