Sconto del 50%. tutti i piani, tempo limitato. A partire da $2.48/mo
10 minuti rimasti
Server e sistema operativo

Istruzione Bash If: sintassi, variazioni, casi d'uso, comandi e altro!

Pio Bodenmann By Pio Bodenmann 10 minuti di lettura Aggiornato il 28 gennaio 2024
scripting bash

Nello scripting di shell, le istruzioni if ​​di Bash svolgono un ruolo cruciale consentendo ai programmatori di creare percorsi di esecuzione condizionali basati su diverse situazioni. Fondamentalmente, le istruzioni if ​​ci consentono di prendere decisioni all'interno degli script Bash, considerando fattori come i risultati dei test, l'input dell'utente o gli stati del sistema. È come un modo per navigare attraverso diverse possibilità.

Quando si utilizza lo scripting Bash, un'istruzione if segue una struttura specifica. Di solito inizia con "if" parola chiave, seguita dalla condizione che necessita di valutazione, il "Poi" e uno o più comandi da eseguire se la condizione è vera.

Per rendere le cose più flessibili, l'istruzione if può anche includere un "elif" (else if), che entra in gioco quando la condizione iniziale è falsa. Ci consente di testare una condizione aggiuntiva e procedere di conseguenza. Inoltre, l'istruzione if può avere un'istruzione "else" opzionale, che viene eseguita se nessuna delle condizioni è vera.

Combinando le istruzioni if ​​con altri comandi Bash e funzionalità di scripting della shell, i programmatori possono creare script avanzati in grado di automatizzare attività e processi complessi. Resta qui per scoprire di più sull'istruzione if di Bash, inclusa la sua sintassi, casi d'uso ed esempi!

Sintassi dell'istruzione Bash If

La sintassi Bash si riferisce alle regole che governano la struttura e la grammatica dei comandi e degli script scritti nel linguaggio della shell Bash. La sintassi Bash include una varietà di costrutti ed elementi, come:

  • Comandi: questi sono i singoli programmi eseguibili o i componenti integrati della shell utilizzati per eseguire attività specifiche. Trascorrerai la maggior parte del tempo occupandoti della programmazione Bash con queste adorabili battute.
  • Argomenti: si tratta di valori passati ai comandi per specificare opzioni, parametri o dati di input. Considerateli come condizioni impostate affinché un comando ne specifichi i parametri di esecuzione.
  • Variabili: si tratta di simboli che rappresentano valori che possono essere assegnati, manipolati o utilizzati nelle espressioni. Sono comunemente usati per determinare i valori con cui devono trattare sia i comandi che gli argomenti.
  • Reindirizzamento: questo è il processo di reindirizzamento di input, output o errori da o verso file, dispositivi o altri comandi. Senza questi, c'è un'alta probabilità che i tuoi comandi indirizzino alla destinazione sbagliata e rovinino il tuo codice.
  • Tubi: Questo è un meccanismo per collegare l'output di un comando all'input di un altro comando. Questi vengono generalmente utilizzati per eseguire righe di comando condizionali avanzate in programmi di grandi dimensioni e per creare righe di comando intrecciate.
  • Strutture di controllo: si tratta di costrutti che controllano il flusso di esecuzione di comandi, come loop, condizionali e funzioni. Comprendere la struttura di controllo è fondamentale per creare nuove righe di comando e fornisce un ulteriore livello di profondità al codice.
  • Commenti: si tratta di annotazioni che vengono ignorate dalla shell e vengono utilizzate per documentare il codice o fornire spiegazioni. Questi sono punti di riferimento importanti quando si eseguono analisi e debug, soprattutto nei progetti di gruppo.

La sintassi Bash deve essere scritta correttamente affinché la shell possa interpretare ed eseguire i comandi. Gli errori di sintassi possono far sì che la shell produca messaggi di errore o comportamenti imprevisti.

Ecco l'istruzione if di Bash in azione:

if condition
then
   command1
   command2
   ...
   commandN
elif condition2
then
   commandA
   commandB
   ...
   commandC
else
   commandX
   commandY
   ...
   commandZ
fi

Nel caso che abbiamo qui, la “condizione” si riferisce a un test che produce un risultato vero o falso. Quando la condizione è vera, vengono eseguiti i comandi successivi specificati dopo la parola chiave "then". Ora, supponiamo di voler valutare invece una condizione aggiuntiva. Possiamo usare la parola chiave “elif” per farlo. Fornisce un modo per considerare un'altra possibilità. Ora, se nessuna delle condizioni è vera, entrano in gioco i comandi specificati dopo la parola chiave “else”. È come un piano di riserva. Infine, per indicare la conclusione dell'istruzione if, utilizziamo la parola chiave “if”.

Come funzionano le istruzioni Bash?

Quando si tratta di scripting Bash, l'istruzione if diventa molto utile nel guidare il flusso dello script in base al risultato di un test condizionale. Il suo scopo ruota attorno alla valutazione di una condizione e, se ritenuta vera, all'esecuzione di una serie specifica di comandi.

Ora diamo un'occhiata a come si svolgono solitamente le cose quando un'istruzione if entra in gioco all'interno di uno script Bash. Lo script impiega un momento per valutare la condizione menzionata nell'istruzione if. Se la condizione si rivela vera, i comandi inseriti nel blocco “allora” trovano il loro turno di esecuzione.

Tuttavia, se la condizione risulta essere falsa, lo script procede valutando eventuali condizioni elif aggiuntive. Se una qualsiasi di queste condizioni è vera, i comandi del blocco elif corrispondente vengono eseguiti. Nei casi in cui nessuna delle condizioni specificate nelle istruzioni if ​​ed elif sembra essere vera, lo script lo riconosce e procede con l'esecuzione dei comandi specificati nel blocco else (se è stato incluso un blocco else).

Essenzialmente, l’istruzione if serve come mezzo per facilitare il processo decisionale all’interno di uno script, permettendogli di attraversare diversi percorsi di esecuzione a seconda del risultato del test. Il test stesso può tenere conto di diversi fattori, come l'esito di un comando o il valore assegnato ad una variabile.

Bash If istruzione esemplificata

Ora usciamo dalla teoria di base e vediamo come un'istruzione if di Bash può essere utilizzata in uno sviluppo attivo della codifica. Ecco un esempio che dimostra come funziona un'istruzione if di Bash:

#!/bin/bash
# set a variable
x=5
# evaluate the variable
if [ $x -gt 4 ]
then
  echo "x is greater than 4."
else
  echo "x is less than or equal to 4."
fi

In questo esempio, l'istruzione if valuta il valore della variabile x. Se x è maggiore di 4, lo script esegue il comando per stampare "x è maggiore di 4". Se x è minore o uguale a 4, lo script esegue il comando per stampare "x è minore o uguale a 4".

Ora che hai una solida conoscenza dell'istruzione If semplice di Bash e di come funziona, approfondiamo le varianti e i comandi correlati e impariamo di più sulle istruzioni If di base, sulle istruzioni If nidificate, su Bash If Else, If Elif Else e sulle istruzioni Case una per una.

Istruzioni If di base

Cominciamo con l'istruzione if di base di bash. L'istruzione if in Bash controlla se una condizione è vera ed esegue di conseguenza un blocco di codici correlati. Ecco la sintassi:

if [ condition ]
then
  commands
fi

Nel caso in questione, lo script valuta la condizione e, se è vera, i comandi specificati vengono eseguiti. Se la condizione è falsa, lo script passa al comando successivo senza eseguire il blocco all'interno della sezione “then”.

Istruzioni If nidificate

Un'istruzione if nidificata, come suggerisce il nome della creatività, è un'istruzione if "nidificata" all'interno di un'altra istruzione if. Questa struttura nidificata consente test e analisi più complessi all'interno di uno script. Ecco un esempio di un'istruzione if nidificata:

if [ condition1 ]
then
  if [ condition2 ]
  then
    commands
  fi
fi

Puoi vedere nei comandi che lo script valuta la condizione1 come primo passo. Se la condizione1 è verificata come vera, valuta la condizione2. Se anche la condizione2 è vera, lo script esegue i comandi necessari.

Istruzioni Bash If Else

L'istruzione Bash if else ti consente di prendere decisioni all'interno del tuo script in base al fatto che una condizione sia vera o falsa, consentendo un'esecuzione del codice situazionale più avanzata. Ecco come appare la struttura:

if [ condition ]
then
  commands1
else
  commands2
fi

Questo costrutto garantisce che, se la condizione è valida, lo script esegue rapidamente "commands1". Tuttavia, se la condizione è falsa, passerà all'esecuzione di “comandi2”.

Se Elif Else dichiarazioni

A volte è necessario considerare più condizioni e i rispettivi risultati. L'istruzione if elif else ti consente di ottenere esattamente questo. Osservare la seguente sintassi:

if [ condition1 ]
then
  commands1
elif [ condition2 ]
then
  commands2
else
  commands3
fi

Qui, il tuo script valuta prima la condizione1. Se è verificato vero; eseguirà rapidamente i comandi1. Tuttavia, se la condizione1 è falsa, lo script passa alla valutazione della condizione2. Se la condizione2 è vera, procede con l'esecuzione dei comandi2. E se sia la condizione1 che la condizione2 risultano false, lo script sceglierà l'alternativa, ovvero l'esecuzione di comandi3.

Dichiarazioni del caso

In Bash, hai l'istruzione case, che funziona in modo simile all'istruzione switch presente in altri linguaggi di programmazione. Fornisce un modo per eseguire diversi set di comandi in base al valore di una variabile. Dai un'occhiata alla struttura:

case expression in
  pattern1)
    commands1;;
  pattern2)
    commands2;;
  pattern3)
    commands3;;
*)
default commands;;
esac

Qui, lo script valuta la variabile espressione e la confronta con vari modelli. Quando viene trovata una corrispondenza, viene eseguito il set di comandi corrispondente. Tuttavia, se non viene trovata alcuna corrispondenza, i comandi predefiniti vengono eseguiti correttamente. Il modello asterisco (*) funge da carattere jolly, corrispondendo a tutto ciò che non è stato coperto.

Operatori logici di Bash

Un'altra parte importante delle macchinazioni dell'istruzione if di Bash è l'operatore logico. Questi operatori ti consentono di amalgamare più condizioni, consentendoti di prendere decisioni basate sulla verità o falsità di queste condizioni combinate. Bash incorpora tre operatori logici primari da utilizzare nelle istruzioni if. Di seguito sono riportati esempi dei tre tipi principali di comandi dell'operatore logico.

  • Bash AND (&&):
if [ $age -ge 18 ] && [ "$citizen" == "yes" ]; then
  echo "You meet the criteria for voting."
fi
  • Logico o (II):
if [ "$status" == "active" ] || [ "$role" == "admin" ]; then
  echo "Access granted."
fi
  • Non uguale a:
if(( ! $a == "true" )) then 
  echo "a" was initially false. 
else
  echo "a" was initially true. 
fi

Conclusione

In questo post del blog abbiamo fornito una guida introduttiva sulle istruzioni if ​​di Bash e su come usarle. Abbiamo anche discusso di come possono rendere il tuo codice molto più ordinato e funzionale. Utilizzando queste istruzioni condizionali in modo efficace, puoi creare script potenti in grado di gestire attività complesse e processi decisionali.

Sei nuovo nel mondo di Linux? Lasciaci essere la tua luce guida in questo emozionante viaggio! Nostro VPS Linux è il punto di partenza perfetto per i principianti, offrendo semplicità senza sacrificare la potenza. Grazie alle interfacce intuitive e al supporto di esperti, sarà più semplice che mai sfruttare le funzionalità di un server Linux. Che tu stia creando un sito Web, testando applicazioni o esplorando il vasto mondo di Linux, il nostro VPS Linux offre un ambiente sicuro e senza problemi. Muovi i tuoi primi passi nell'universo Linux con sicurezza: dai un'occhiata alle nostre opzioni VPS Linux oggi e intraprendi la tua avventura Linux!

Hosting VPS Linux

Procurati un VPS Linux economico o premium per l'hosting del tuo sito web o desktop remoto, al prezzo più conveniente in circolazione. VPS in esecuzione su Linux KVM per una maggiore efficienza e funzionante su hardware potente con storage SSD NVMe per una maggiore velocità.

Per saperne di più

Domande frequenti

Posso usare gli operatori logici nelle istruzioni if ​​di Bash?

Sì, puoi utilizzare operatori logici come "&" E ‘||’ in Bash if istruzioni. Per esempio, if [ $var -gt 0 ] && [ $var -lt 10 ]; Poi … eseguirà il blocco di codice se $var è maggiore di 0 e minore di 10.

Posso utilizzare più condizioni in una singola istruzione if?

Sì, puoi utilizzare Bash if più condizioni in una singola istruzione if utilizzando operatori logici come -a (E) o -o (OR) per combinarli. Per esempio, if [ $var -gt 0 -a $var -lt 10 ]; Poi … eseguirà il blocco di codice se $var è maggiore di 0 E minore di 10.

Posso usare la sostituzione dei comandi nelle istruzioni if ​​di Bash?

Sì, puoi utilizzare la sostituzione dei comandi nelle istruzioni if ​​di Bash racchiudendo il comando in $() o apici inversi (). Per esempio, if [ $(whoami) == “root”]; Poi … eseguirà il blocco di codice se l'utente corrente è root.

[[ vs [ vs ( vs ((: Qual è la differenza tra questi operatori Bash?

In breve, [[ viene utilizzato per test condizionali avanzati. [ viene utilizzato per i test condizionali di base. ( viene utilizzato per il raggruppamento di subshell e l'esecuzione dei comandi. (( viene utilizzato per le operazioni aritmetiche.

 

Condividere

Altro dal blog

Continua a leggere.

Le migliori app self-hosted che puoi eseguire con Cosmos Cloud Immagine di copertina con pannelli delle app attorno a un dashboard Cosmos.
Server e sistema operativo

Le migliori app self-hosted che puoi eseguire con Cosmos Cloud: file, contenuti multimediali, password, automazione e altro!

Forse hai configurato Cosmos Cloud e ora vuoi vedere quali app si adattano bene ad esso, o forse non hai ancora deciso su Cosmos e vuoi solo vedere se si adatta bene al tuo ambiente di lavoro.

Nick ArgentoNick Argento 16 minuti di lettura
Copertina di Portainer e Cosmos Cloud per la gestione delle app Docker con diagramma di configurazione ibrida e operazioni al neon e blocchi di accesso.
Server e sistema operativo

Portainer vs Cosmos Cloud: la soluzione migliore per la gestione delle app Docker

Se conosci già Docker e desideri semplicemente un modo più semplice per eseguire uno stack di app in crescita, ecco la risposta breve a Portainer vs Cosmos Cloud. Portainer è la scelta più forte per direc

Nick ArgentoNick Argento 14 minuti di lettura
Cosmos Cloud vs CasaOS vs Umbrel presenta un grafico che mostra tre percorsi self-hosted all'interno di un mondo astratto di rete cloud.
Server e sistema operativo

Cosmos Cloud vs CasaOS vs Umbrel: quale piattaforma self-hosted si adatta alla tua configurazione?

La risposta breve è che CasaOS è ancora il punto di partenza più semplice, Umbrel ha l'atmosfera più pulita e curata e Cosmos Cloud ha più senso quando si desidera un controllo più stretto sul dominio.

Nick ArgentoNick Argento 11 minuti di lettura

Pronti per la distribuzione? A partire da $ 2,48 al mese.

Cloud indipendente, dal 2008. AMD EPYC, NVMe, 40 Gbps. Rimborso entro 14 giorni.