La combinazione di due o più comandi sulla riga di comando è anche nota come "concatenamento di comandi". Ti mostreremo diversi modi per combinare i comandi sulla riga di comando.
Opzione uno: l'operatore punto e virgola (;)
L'operatore punto e virgola (;) consente di eseguire più comandi in successione, indipendentemente dal fatto che ciascun comando precedente abbia esito positivo. Ad esempio, apri una finestra Terminale (Ctrl + Alt + T in Ubuntu e Linux Mint). Quindi, digitare i seguenti tre comandi su una riga, separati da punto e virgola, quindi premere Invio. Questo ti darà un elenco della directory corrente (
ls
), trova la directory in cui ti trovi attualmente (
pwd
) e visualizza il nome di accesso (
whoami
) tutto in una volta.
ls; pwd; whoami
Non è necessario inserire spazi tra il punto e virgola e i comandi. Puoi inserire i tre comandi come
ls;pwd;whoami
. Tuttavia, gli spazi rendono il comando combinato più leggibile, il che è particolarmente utile se si inserisce un comando combinato in uno script di shell.
Opzione due: l'operatore logico AND (&&)
Se si desidera eseguire il secondo comando solo se il primo comando ha esito positivo, separare i comandi con l'operatore AND logico, che è due e commerciale (
&&
). Ad esempio, vogliamo creare una directory denominata MyFolder e quindi passare a quella directory, a condizione che sia stata creata correttamente. Quindi, digitiamo quanto segue sulla riga di comando e premiamo Invio.
mkdir MyFolder && cd MyFolder
La cartella è stata creata correttamente, quindi
cd
il comando è stato eseguito e ora ci troviamo nella nuova cartella.
Si consiglia di utilizzare l'operatore AND logico piuttosto che l'operatore punto e virgola la maggior parte del tempo (
;
). Questo assicura che tu non faccia nulla di disastroso. Ad esempio, se si esegue un comando per passare a una directory e quindi forzare a rimuovere tutto in quella directory in modo ricorsivo (
cd /some_directory; rm -Rf *
), potresti finire per rovinare il tuo sistema se la modifica della directory non è avvenuta. Non è consigliabile eseguire un comando per rimuovere incondizionatamente tutti i file in una directory contemporaneamente.
Opzione tre: l'operatore logico OR (||)
A volte potresti voler eseguire un secondo comando solo se il primo comando lo esegue nonavere successo. Per fare ciò, usiamo l'operatore logico OR o due barre verticali (
||
). Ad esempio, vogliamo verificare se esiste la directory MyFolder (
[ -d ~/MyFolder ]
) e crearlo se non lo fa (
mkdir ~/MyFolder
). Quindi, digitiamo il comando seguente al prompt e premiamo Invio.
[ -d ~/MyFolder ] || mkdir ~/MyFolder
Assicurati che ci sia uno spazio dopo la prima parentesi e prima della seconda parentesi o il primo comando che controlla se la directory esistente non funziona.
Nel nostro esempio, la cartella MyFolder non esiste, quindi il secondo comando crea la directory.
Combinare più operatori
Puoi anche combinare più operatori sulla riga di comando. Ad esempio, vogliamo prima controllare se esiste un file (
[ -f ~/sample.txt ]
). Se lo fa, stampiamo un messaggio sullo schermo dicendo così (
echo “File exists.”
). In caso contrario, creiamo il file (
touch ~/sample.txt
). Quindi, digitiamo quanto segue al prompt dei comandi e premiamo Invio.
[ -f ~/sample.txt ] && echo “File exists.” || touch ~/sample.txt
Nel nostro esempio, il file non esisteva, quindi è stato creato.
-
A; B
- Esegui A e poi B, indipendentemente dal successo o dall'errore di A
-
A && B
- Esegui B solo se A riuscito
-
A || B
- Esegui B solo se A fallito
Tutti questi metodi di combinazione dei comandi possono essere utilizzati anche negli script di shell su Linux e Windows 10.
È inoltre possibile correggere automaticamente errori di ortografia e di battitura quando si utilizza "cd" sulla riga di comando in Linux per evitare conseguenze drastiche quando si combinano i comandi.