Gli script Bash sono utili per automatizzare le attività e scoprirai che sono ottimi per creare semplici applicazioni da riga di comando. La shell Bash interpreta gli script Bash, quindi non sarà necessario installare alcuna dipendenza per scriverli ed eseguirli. Gli script Bash sono anche portabili poiché la maggior parte dei sistemi operativi basati su Unix utilizzano lo stesso interprete di shell.
La conoscenza dello scripting Bash è un must per ogni sviluppatore, specialmente se lavori con sistemi basati su Unix.
Variabili in Bash
variabili Bash fanno distinzione tra maiuscole e minuscole. Per dichiarare le variabili, utilizzare un segno di uguale (=) con il nome a sinistra e il valore a destra:
STATO=Washington
Il valore a cui questa dichiarazione assegna STATO è una sola parola. Se hai bisogno di spazi nel tuo valore, usa le virgolette intorno ad esso:
STATE="Nord Arizona"
Dovrai usare il simbolo del dollaro ($) prefisso per fare riferimento a variabili in altre variabili o istruzioni:
STATO=Washington
LOCATION="La mia posizione è $STATO"
Stampa di valori in Bash
Esistono diversi modi per stampare variabili in Bash. Puoi usare il eco comando per l'output di base o lo stile C stampa f comando per la formattazione delle stringhe.
STATO=Washington
LOCATION="La mia posizione è $STATO"
eco$ POSIZIONE
Dopo aver dichiarato il STATO variabile, questo script definisce POSIZIONE facendo riferimento a STATO. Se poi usa echo per stampare il valore finale della variabile LOCATION.
Il stampa f La parola chiave consente di utilizzare i verbi di formattazione per generare i dati. I verbi di formattazione delle stringhe sono simili a quelli in C e Go ma con verbi limitati.
Verbo | Funzionalità |
---|---|
%c | stampa singoli caratteri |
%o | stampa ottadecimali |
%S | stampa le stringhe, indipendentemente dall'involucro |
%X | stampa esadecimale minuscolo |
%X | stampa in maiuscolo esadecimale |
%d | stampa numeri interi |
% e | stampa la nozione scientifica fluttua in minuscolo |
%E | stampa la nozione scientifica fluttua in maiuscolo |
%f | stampa numeri in virgola mobile |
%% | stampa un singolo simbolo di percentuale. |
Ecco un esempio di utilizzo di un verbo con il Stampa parola chiave.
STATO=Lagos
stampa f "La mia posizione è %s" $STATO
Il stampa f funzione sostituirebbe il STATO variabile nella posizione del %S verbo e l'output sarebbe "La mia posizione è Lagos".
Puoi inserire commenti in Bash con l'hash o il cancelletto (#) simbolo. La shell ignora automaticamente i commenti.
#!/bin/bash
# STATO=Washington
# LOCATION="La mia posizione è $STATE"
Non sono presenti commenti su più righe. La maggior parte degli IDE e degli editor di testo ti consente di commentare con la scorciatoia Ctrl/Comando + barra (/). Dovresti essere in grado di utilizzare la scorciatoia per creare più commenti a riga singola.
Ricezione dell'input dell'utente in Bash
Come molti altri linguaggi di programmazione, puoi ricevere l'input dell'utente in Bash per rendere i tuoi programmi/script più interattivi. Puoi usare il leggere comando per richiedere l'input dell'utente.
leggere risposta
In questo caso, il risposta la variabile conterrà l'input dell'utente alla consegna.
eco "Cosa vuoi?: "
leggi la risposta
eco $risposta
La richiesta di input dell'utente sarà su una nuova riga nell'esempio sopra.
Puoi aggiungere il -n bandiera al eco print per mantenere la riga in cui l'utente immette l'input.
echo -n "Cosa vuoi."
leggi la risposta
eco $risposta
Dichiarazione di array in Bash
Matrici in Bash sono proprio come la maggior parte delle lingue. Puoi dichiarare una variabile array in Bash specificando gli elementi tra parentesi.
Paesi=('USA' 'Russia' 'Ucraina', "Inghilterra", "Taiwan", "Cina")
L'accesso a un array tramite riferimento al nome della variabile recupererebbe il primo elemento. È possibile accedere all'intero array utilizzando il segno di asterisco come indice.
echo ${Paesi[*]}
È inoltre possibile specificare l'indice dell'array per accedere a un elemento specifico. L'indice di un array inizia da zero.
eco "${Paesi[4]}"
Dichiarazioni condizionali in Bash
Bash fornisce condizioni per il processo decisionale nei programmi.
Ecco l'anatomia di un'istruzione if-else in Bash. Dovrai usare il punto e virgola per specificare la fine della condizione.
Se [[ condizione ]]; poi
eco dichiarazione1
elif [[condizione ]]; poi
eco dichiarazione2
altro [[condizione ]]; poi
eco dichiarazione3
fi
Devi finire ogni Se dichiarazione con il fi parola chiave.
Se [ 1 == 2 ]; poi
eco uno
elif [ 2 == 3 ]; poi#altro-se
eco Due
altro [ 4 > 3 ];
eco "corretto, 3"
fi
Puoi usare le istruzioni case nei tuoi programmi Bash usando Astuccio parola chiave. Dovrai specificare lo schema seguito dalle parentesi finali prima dell'istruzione.
CITTÀ=Lagos
Astuccio$ CITTÀin
"Washington") # modello
eco "Stati Uniti d'America" # dichiarazione
;; # fine di un caso
"Lago" | "Abuja")
eco "Nigeria"
;;
"Johannesburg" | "Città del Capo")
eco "Sud Africa"
;;
*) # modello predefinito
eco "Antartide" # istruzione predefinita
;;
esac# fine della dichiarazione del caso
È possibile definire il caso predefinito utilizzando l'asterisco (*) come modello. Le dichiarazioni del caso devono terminare con il esac parola chiave.
Cicli in Bash
A seconda delle tue esigenze, puoi utilizzare un ciclo while, range for-loop o uno stile C ciclo for per operazioni ricorrenti.
Ecco un esempio dello stile C for-loop. I cicli for devono terminare con il fatto parola chiave e devi terminare l'istruzione for con un punto e virgola seguito da fare parola chiave.
per ((a = 0; a < 10; a+2)); fare
eco$ un
fatto
La gamma for loop è utile per lavorare con i file e molte altre operazioni. Dovrai usare il in parola chiave con l'intervallo for-loop.
per io in {1..7}; fare
eco$1
fatto
Ecco un semplice ciclo infinito per dimostrare Bash mentre loop in azione.
nome=1
mentre [ 1 -le 5 ] # mentre 1 < 5
fare
eco$ nome
fatto
Il -le nella condizione è l'operatore binario per minore di.
Funzioni in Bash
Non hai bisogno di parole chiave per dichiarare le funzioni in Bash. Puoi dichiarare le funzioni con il nome e poi le parentesi prima del corpo della funzione.
print_directory_di_lavoro() {
eco$PWD#chiamando il comando PWD dallo script
}
eco "Sei in $(print_directory_di_lavoro)"
Le funzioni possono restituire variabili in Bash. Tutto ciò di cui hai bisogno è il Restituzione parola chiave.
print_directory_di_lavoro() {
Restituzione$PWD
}
Il print_directory_di_lavoro la funzione restituisce la directory di lavoro del file.
Puoi scrivere script di shell in altre lingue
Bash non è l'unico linguaggio che puoi usare per interagire con la shell del tuo sistema operativo o creare applicazioni da riga di comando. Puoi usare molti altri linguaggi come Go, Python, Ruby e Rust.
Molti sistemi operativi hanno Python3 preinstallato e Python è un linguaggio prevalente. Se hai bisogno di ancora più funzionalità di quelle che gli script Bash possono offrire, considera l'utilizzo di Python.