Introduzione
Impareremo come eseguire più comandi contemporaneamente in Linux in questo articolo. Ogni operatore ha i suoi vantaggi quando si tratta di separare i comandi. Questo tutorial aiuterà un po' a migliorare il modo in cui eseguiamo i comandi e gli script della shell dell'autore.
Il sistema operativo Linux offre una semplice interfaccia a riga di comando per la gestione del sistema. Esistono shell come Bash, CSH e Zsh che accettano comandi dall'utente e li instradano al kernel. Un comando viene utilizzato per eseguire alcune funzioni sul sistema. Possiamo anche specificare più shell contemporaneamente ed eseguirle una dopo l'altra.
Sono disponibili tre opzioni distinte utilizzando gli operatori separatori. Nella sezione seguente, li esamineremo in dettaglio.
Utilizzare il punto e virgola (;)
I punti e virgola (;) separano i comandi per garantire che i comandi successivi vengano eseguiti indipendentemente dagli stati di uscita dei precedenti. Utilizzare questa opzione per assicurarsi che il comando venga eseguito dopo il completamento di quello precedente.
Sintassi:
command1; command2; commandN
Esempio:
date; pwd; whoami
Sun Aug 7 03:51:00 UTC 2022
/home/noviello
noviello
Anche se il secondo comando ha esito negativo a causa di un errore di autorizzazione, il terzo comando viene comunque eseguito nei seguenti comandi:
date; touch /root/a.txt; whoami
Utilizzare l'operatore AND logico (&&)
Dopo aver eseguito correttamente il comando precedente, verrà eseguito anche il comando successivo. L'operatore logico AND (&&) verifica lo stato di uscita del comando precedente.
Tuttavia, se il comando precedente è terminato con uno stato di uscita diverso da zero, l'esecuzione si interromperà qui. In questo caso non verranno eseguiti comandi successivi.
Sintassi:
command1 && command2 && commandN
Esempio:
mkdir ./backups && cd ./backups
L'ultimo comando non verrà eseguito se il primo comando non è riuscito per qualsiasi motivo:
mkdir /root/backups && cd /root/backups
mkdir: cannot create directory ‘/root/backups’: Permission denied
Utilizzare l'operatore OR logico (||)
La condizione logica OR (||) verifica lo stato di uscita del comando precedente ed esegue il comando successivo solo se il comando precedente non è riuscito.
Sintassi:
command1 || command2 || commandN
È possibile utilizzare questo costrutto negli script della shell per determinare se è disponibile un file o un comando. Ad esempio, in uno script di backup, puoi verificare se /usr/bin/mysqldump
esiste o meno e, in caso contrario, puoi stampare un messaggio o terminare il processo:
[ -s /usr/bin/mysqldump ] || echo "command not found"
Usalo per testare un comando o un file che non è sul tuo sistema. Questo è utile per gli script bash che creano file se mancano. Puoi anche interrompere l'esecuzione dello script se mancano i file richiesti:
[ -s /usr/bin/not_a_cmd ] || echo "command not found"
Conclusione
In questo articolo, esamineremo come eseguire più comandi contemporaneamente in Linux. Tratteremo anche i vari operatori utilizzati per separare i comandi l'uno dall'altro. Ogni operatore influisce sul modo in cui viene eseguito un comando e ognuno ha i suoi vantaggi. Questo tutorial fornirà alcune informazioni utili a chiunque sia interessato a migliorare le proprie capacità di esecuzione dei comandi o di scrittura di script di shell.