Bash se, altrimenti se, altrimenti esempi

Bash se, altrimenti se, altrimenti esempi
In questo tutorial di Linux Insegne insegneremo i condizionali di scripting di Bash SE, Elif E ALTRO comandi. IL SE La condizione è il modo più elementare per intraprendere un'azione condizionale in una Bash Scripts, quindi è importante avere una presa ferma sulla sua sintassi e le opzioni per essere produttive. Quando si usa SE Condizioni in Bash, è possibile introdurre facoltativamente Elif condizioni che forniranno azioni diverse a seconda di quale di un gruppo di condizioni è VERO. Inoltre il ALTRO la condizione può essere facoltativamente inclusa, che fornirà il codice da eseguire se nessuna delle condizioni del gruppo viene soddisfatta.

Esempi specifici mostrati in questo articolo includono:

  1. Esempio 1: istruzione if in bash sull'uguaglianza delle stringhe
  2. Esempio 2: istruzione if in bash sull'uguaglianza numerica
  3. Esempio 3: istruzione if in bash su meno di un numero
  4. Esempio 4: istruzione if in bash con logico e operatore
  5. Esempio 5: istruzione if in bash con logico o operatore
  6. Esempio 6: condizione elif in bash
  7. Esempio 7: se l'istruzione else in Bash Scripting

Sintassi generale di Bash se Elif altro

Di seguito è riportata la sintassi generale di SE Elif E ALTRO In Bash:

Se condizione a test; Poi
Code-to-Excute-1
Elif Next-Condition-to-Test; Poi
Code-to-Execute-2
Elif Next-Condition-to-Test; Poi
Code-to-Execute-2
altro
Code-to-Execute-2
fi

Nota: nella sintassi generale sopra che puoi includere zero, uno o multiplo Elif condizioni nel blocco di codice e ALTRO la condizione è facoltativa.

La costruzione delle condizioni reali ha molte opzioni perché la sintassi di Bash ha così tante caratteristiche e opzioni diverse, ma un modello di base per i tuoi script bash sarebbe usare il [[[ Sintassi a doppia serie come mostrato nell'esempio di sintassi generale e esempi specifici di seguito.

se [[condizione-test]]; Poi
Code-to-Excute-1
elif [[prossimo condizione-test]]; Poi
Code-to-Execute-2
elif [[prossimo condizione-test]]; Poi
Code-to-Execute-2
altro
Code-to-Execute-2
fi

Nota anche: a seconda dell'estetica di formattazione del codice che potrebbe piacere la stessa riga delle condizioni o puoi scegliere di metterlo nella riga successiva come mostrato di seguito:

Se [[condizione-test]]
Poi
Code-to-Excute-1
Elif [[prossimo condizione-test]]
Poi
Code-to-Execute-2
Elif [[prossimo condizione-test]]
Poi
Code-to-Execute-2
altro
Code-to-Execute-2
fi

Ora mostriamo esempi specifici delle variazioni di base del SE Elif E ALTRO Condizioni negli esempi di lavoro di seguito.

Esempio 1: istruzione if in bash sull'uguaglianza delle stringhe

#!/Bin/Bash
Leggi -p "Immettere una parola corrispondente:" user_input
if [[$ user_input == "ciao"]; Poi
echo "ciao anche a te"
fi

In questo esempio sopra usiamo la base SE condizione con un singolo test di uguaglianza delle stringhe e quindi stampare un po 'di output nel caso in cui la condizione sia vera in base all'input dall'utente. Nota, puoi posizionare il POI Dichiarazione sulla riga successiva se preferisci quello stile. Vedi l'output di esempio di seguito:

LinuxHint@: ~ $ Bash T1.sh
Inserisci una parola di corrispondenza: ciao
Ciao anche a te
LinuxHint@: ~ $ Bash T1.sh
Inserisci una parola di corrispondenza: ciao
Linuxhint@: ~ $

Esempio 2: istruzione if in bash sull'uguaglianza numerica

#!/Bin/Bash
Leggi -p "Immettere un numero:" user_input
if [[$ user_input -eq 7]]; Poi
Echo "7 è un numero fortunato"
fi

In questo esempio sopra, ancora una volta facciamo un semplice SE condizione ma in questo caso dimostriamo come fare un confronto di test sui valori numerici. Puoi vedere l'output di seguito con le condizioni di corrispondenza e non corrispondente:

Linuxhint@: ~ $ bash t2.sh
Immettere un numero: 7
7 è un numero fortunato
Linuxhint@: ~ $ bash t2.sh
Immettere un numero: 8
Linuxhint@: ~ $

Esempio 3: istruzione if in bash su meno di un numero

Inoltre -Eq Per l'uguaglianza puoi anche provare -lt -le -gt -ge Condizioni di test per meno, meno o uguale, maggiore o più o uguale rispettivamente. Di seguito è riportato un esempio simile con meno operatore -lt:

#!/Bin/Bash
Leggi -p "Immettere un numero:" user_input
if [[$ user_input -lt 100]]; Poi
Echo "La tua voce è meno di cento"
fi

L'output per questo script sarà in grado di testare se l'ingresso è inferiore a 100 ed eseguire codice specifico su tale condizione:

Linuxhint@: ~ $ bash t3.sh
Immettere un numero: 99
La tua voce è meno di cento
Linuxhint@: ~ $ bash t3.sh
Immettere un numero: 101
Linuxhint@: ~ $

Esempio 4: istruzione if in bash con logico e operatore

Questo esempio mostrerà come combinare più condizioni con un logico E condizione. Puoi anche usare logico O condizioni nel tuo SE costrutti di istruzione. Logico E In Bash Codice è scritto con doppio ampo e &&. Di seguito è riportato un esempio di logico E in una festa SE condizione:

#!/Bin/Bash
Leggi -p "Immettere un numero:" user_input
if [[$ user_input -gt 9 && $ user_input -lt 100]]; Poi
Echo "La tua voce è due cifre"
fi

Proverà questo con vari output per dimostrare che solo se sia la prima che la seconda condizione sono vere, verrà stampata l'output:

Linuxhint@: ~ $ Bash T4.sh
Immettere un numero: 22
La tua voce è di due cifre
Linuxhint@: ~ $ Bash T4.sh
Immettere un numero: 8
Linuxhint@: ~ $ Bash T4.sh
Immettere un numero: 100
Linuxhint@: ~ $ Bash T4.sh
Immettere un numero: 99
La tua voce è di due cifre

Esempio 5: istruzione if in bash con logico o operatore

Logico O In Bash Scripts è scritto con doppie barre verticali ||. Proviamo di nuovo l'esempio precedente con una leggera variazione per testare un esempio di logico o operatore:

#!/Bin/Bash
Leggi -p "Immettere un numero:" user_input
Se [[$ user_input -lt 10 || $ User_input -ge 100]]; Poi
Echo "La tua voce non è due cifre"
fi

In questo esempio il logico O L'operatore combina due condizioni e solo una di esse o entrambi può essere vero affinché la condizione sia vera in generale e il codice da eseguire. Dimostriamo anche il -ge operatore per un confronto numerico maggiore o uguale nell'esempio sopra. Lo script funziona come previsto nell'output di seguito:

Linuxhint@: ~ $ Bash T5.sh
Immettere un numero: 3
La tua voce non è di due cifre
Linuxhint@: ~ $ Bash T5.sh
Immettere un numero: 10
Linuxhint@: ~ $ Bash T5.sh
Immettere un numero: 99
Linuxhint@: ~ $ Bash T5.sh
Immettere un numero: 100
La tua voce non è di due cifre
Linuxhint@: ~ $ Bash T5.sh
Immettere un numero: 101
La tua voce non è di due cifre

Esempio 6: condizione elif in bash

Forniremo ora un esempio per più condizioni se nel blocco di codice Elif. Puoi avere zero, uno o multipe Elif Condizioni in un blocco di codice. Per questo esempio ne forniremo due Elif condizioni come dimostrazione, ma puoi usare un numero qualsiasi di Elif blocchi in pratica.

#!/Bin/Bash
Leggi -p "Immettere un numero:" user_input
if [[$ user_input -lt 0]]; Poi
echo "non un input di numero positivo valido"
elif [[$ user_input -gt 0 && $ user_input -lt 10]]; Poi
Echo "Numero di 1 cifra valido inserito"
elif [[$ user_input -gt 9 && $ user_input -lt 100]]; Poi
Echo "Numero di 2 cifre valido inserito"
fi

Testare questo codice con una varietà di numeri per dimostrare quale se o Elif la condizione è attivata:

Linuxhint@: ~ $ bash t6.sh
Immettere un numero: -1
Non un input di numeri positivo valido
Linuxhint@: ~ $ bash t6.sh
Immettere un numero: 1
Numero di 1 cifra valido inserito
Linuxhint@: ~ $ bash t6.sh
Immettere un numero: 14
Numero di 2 cifre valido inserito
Linuxhint@: ~ $ bash t6.sh
Immettere un numero: 101
Linuxhint@: ~ $

Esempio 7: se l'istruzione else in Bash Scripting

Ora dimostreremo ALTRO condizione. IL ALTRO la condizione viene utilizzata nel caso in cui il SE condizione o tutte le Elif le condizioni non esistono quindi il ALTRO verrà utilizzata la condizione e il codice in ALTRO la condizione verrà eseguita. Aggiungiamo un esempio di ALTRO condizione all'esempio precedente ma per essere chiari Elif non è necessario per sfruttare il ALTRO condizione. IL ALTRO la condizione può essere utilizzata con a SE condizione e no Elif condizione.

#!/Bin/Bash
Leggi -p "Immettere un numero:" user_input
if [[$ user_input -lt 0]]; Poi
echo "non un input di numero positivo valido"
elif [[$ user_input -gt 0 && $ user_input -lt 10]]; Poi
Echo "Numero di 1 cifra valido inserito"
elif [[$ user_input -gt 9 && $ user_input -lt 100]]; Poi
Echo "Numero di 2 cifre valido inserito"
altro
Echo "non è stato inserito un numero di 2 cifre valido"
fi

Proviamo il codice di esempio con un semplice caso di test che dovrebbe cadere in ALTRO condizione:

LinuxHint@: ~ $ Bash T7.sh
Immettere un numero: 199
Non è stato inserito un numero di 2 cifre valido
Linuxhint@: ~ $

CONCLUSIONE

Abbiamo visto come usare SE, Elif E ALTRO Condizioni per formare l'esecuzione condizionale in molte combinazioni negli script bash e nei programmi bash. Per i passaggi successivi è possibile studiare le condizioni del test e le variazioni e le varietà disponibili per il test di una condizione. È inoltre possibile considerare l'istruzione Bash Case come un'alternativa per la logica condizionale negli script bash. Finalmente il manuale di riferimento GNU Bash è una buona fonte di verità quando si cerca dettagli di sintassi esatti.