Doppi parentene quadrate [[]]
I [[e]] sono usati per le espressioni condizionali in bash. La [[è una versione avanzata delle parentesi quadrate singole [] e viene utilizzata per la corrispondenza dei motivi, le espressioni regolari ed espressioni condizionali avanzate. [[L'operatore è più potente di [ed è preferito per molti casi.
#!Bin/Bash
String = Linux
if [[$ string == "linux"]; Poi
Echo "La stringa è Linux"
fi
Nel seguente codice, l'operatore a doppio quadro quadrata viene utilizzato per verificare se il valore della stringa $ variabile è uguale alla stringa "Linux":
Parentesi quadrate singole []
I [e] sono usati per le espressioni condizionali in bash. È anche chiamato comando "test". L'operatore singolo di staffe quadrate [viene utilizzato anche per le espressioni condizionali ma ha più limitazioni di [[[. È utile per confronti e test di base, come il controllo se esiste un file o se una stringa è vuota.
#!Bin/Bash
# Definisci il nome del file da controllare
file = "/home/aaliyan/documenti/bashfile2.sh"
# Controlla se il file esiste
if [-f $ file]; Poi
Echo "Il file esiste"
altro
echo "il file non esiste"
fi
Questo script controlla se un file chiamato "BashFile2.sh "esiste nella rispettiva directory e se esiste il file, stampare il messaggio" Il file esiste "sulla console altro sta stampando" Il file non esiste ":
Parentesi ()
L'operatore tra parentesi (viene utilizzato per eseguire i comandi in un ambiente sottosuolo. Ciò significa che eventuali modifiche apportate all'ambiente all'interno delle parentesi non influiscono sull'ambiente della shell genitore.
#!Bin/Bash
# Modifica la directory in/home/utente/directory ed elenca il suo contenuto
(CD/Home/Aaliyan/Documents && LS)
Nel seguente codice, l'operatore parentesi viene utilizzato per modificare la directory in/home/aaliyan/documenti ed eseguire il comando LS all'interno di una sottoshell:
Doppie parentesi (())
I ((e)) vengono utilizzati per la valutazione aritmetica e supporta caratteristiche più avanzate rispetto all'operatore singolo tra parentesi (, come le operazioni bitwise, di seguito è uno script bash che dimostra l'uso di doppie parentesi:
#!Bin/Bash
# Definisci i valori di A, B e C
a = 7
B = 9
c = 2
# Controlla se la somma di a e b è maggiore di c
if (($ a + $ b> $ c)); Poi
Echo "La somma di a e b è maggiore di c"
fi
Nel seguente codice, l'operatore a doppia parentesi viene utilizzato per verificare se la somma delle variabili $ a e $ b è maggiore del valore della variabile $ c:
Per comprendere ulteriormente le differenze tra questi operatori, ho dato una tabella che può aiutarti a scrivere codice bash più efficiente e utilizzare questi operatori bash in modo più efficace:
Operatore | Scopo | Esempio |
[[espressione]] | Espressioni condizionali | if [[$ string == “Linux”]; quindi echo "La stringa è Linux" |
[espressione] | Espressioni condizionali di base | if [-f $ file]; Quindi eco "Il file esiste" |
(comando) | Esegui i comandi in un ambiente sottosuolo | (CD/Home/User/Directory && LS) |
((espressione)) | Operazioni aritmetiche | if (($ a + $ b> $ c)); Quindi eco "La somma di a e b è maggiore di c" |
Conclusione
Gli operatori bash [[]], [], () e (()) hanno usi e sintassi diversi. L'operatore a doppia staffa quadrata [[]] viene utilizzato per la corrispondenza del pattern e il confronto delle stringhe, mentre l'operatore a singolo quadrato [] viene utilizzato per istruzioni condizionali e test di file. L'operatore tra parentesi () viene utilizzato per raggruppare i comandi insieme e l'operatore doppia tra parentesi (()) viene utilizzato per la valutazione aritmetica. È importante utilizzare l'operatore appropriato per l'attività a portata di mano per garantire che gli script di Bash siano accurati ed efficienti.