Gli script Bash possono essere utilizzati per vari scopi, come l'esecuzione di un comando shell, l'esecuzione di più comandi insieme, la personalizzazione delle attività amministrative, l'esecuzione dell'automazione delle attività, ecc. Quindi la conoscenza delle basi della programmazione bash è importante per ogni utente Linux. Questo articolo ti aiuterà a farti un'idea di base sulla programmazione bash. La maggior parte delle operazioni comuni di scripting bash sono spiegate con esempi molto semplici qui.
I seguenti argomenti della programmazione bash sono trattati in questo articolo.
- Ciao mondo
- Comando Eco
- Commenti
- Commento su più righe
- Mentre il ciclo
- Per il ciclo
- Ottieni input utente
- Se dichiarazione
- E condizione se istruzione
- O Condizione se istruzione
- Else if e else condizione
- Condizioni del caso
- Ottieni argomenti dalla riga di comando
- Ottieni argomenti dalla riga di comando con i nomi
- Combina due stringhe in una variabile
- Ottieni sottostringa di stringhe
- Aggiungi 2 numeri in una variabile
- Crea una funzione
- Usa parametri di funzione
- Passa valore restituito dallo script
- Crea directory
- Crea directory controllando l'esistenza
- Leggi un file
- Elimina un file
- Aggiungi al file
- Verifica se il file esiste
- Invia esempio di e-mail
- Ottieni analisi della data corrente
- Comando di attesa
- Comando di sonno
Crea ed esegui il primo programma BASH:
Puoi eseguire lo script bash dal terminale o eseguendo qualsiasi file bash. Esegui il seguente comando dal terminale per eseguire un'istruzione bash molto semplice. L'output del comando sarà ' Ciao mondo '.
$buttato fuori 'Ciao mondo'
Apri qualsiasi editor per creare un file bash. Qui, nano editor viene utilizzato per creare il file e il nome del file è impostato come ' Primo.sh'
$nanoPrimo.sh
Aggiungi il seguente script bash al file e salva il file.
#!/bin/bashbuttato fuori 'Ciao mondo'
Puoi eseguire il file bash in due modi. Un modo è usare il comando bash e un altro è impostare l'autorizzazione di esecuzione per bash file ed eseguire il file. Entrambi i modi sono mostrati qui.
$bashPrimo.shO,
$chmoda+x Primo.sh$./Primo.sh
Uso del comando echo:
Puoi usare il comando echo con varie opzioni. Alcune opzioni utili sono menzionate nell'esempio seguente. Quando usi ' buttato fuori ' senza alcuna opzione, viene aggiunta una nuova riga per impostazione predefinita. '-n' l'opzione viene utilizzata per stampare qualsiasi testo senza nuova riga e ‘-e’ l'opzione viene utilizzata per rimuovere i caratteri barra rovesciata dall'output. Crea un nuovo file bash con un nome, ' echo_example.sh ' e aggiungi il seguente script.
#!/bin/bashbuttato fuori 'Stampa testo con newline'
buttato fuori -n 'Stampa testo senza newline'
buttato fuori -e ' RimozioneTbarra rovesciataTcaratteri '
Esegui il file con il comando bash.
$bashecho_example.sh
Uso del commento:
'#' il simbolo viene utilizzato per aggiungere un commento a riga singola nello script bash. Crea un nuovo file chiamato ' comment_example.sh' e aggiungi il seguente script con un commento a riga singola.
#!/bin/bash# Aggiungi due valori numerici
((somma=25+35))
#Stampa il risultato
buttato fuori $somma
Esegui il file con il comando bash.
$bashcomment_example.sh
Uso del commento su più righe:
Puoi usare il commento su più righe in bash in vari modi. Un modo semplice è mostrato nell'esempio seguente. Crea una nuova bash denominata, 'multiline-comment.sh' e aggiungi il seguente script. Qui, ':' e ' i simboli sono usati per aggiungere commenti multilinea nello script bash. Questo script seguente calcolerà il quadrato di 5.
#!/bin/bash:'
Il seguente script calcola
il valore quadrato del numero, 5.
'
((la zona=5*5))
buttato fuori $area
Esegui il file con il comando bash.
$bashmultiline-comment.sh
Puoi controllare il seguente link per saperne di più sull'uso del commento bash.
https://linuxhint.com/bash_comments/
Utilizzo del ciclo While:
Crea un file bash con il nome, 'while_esempio.sh', conoscere l'uso di mentre ciclo continuo. Nell'esempio, mentre il ciclo itera per 5 volte. Il valore di contare la variabile aumenterà di 1 in ogni passaggio. Quando il valore di contare variabile sarà 5 quindi il mentre il ciclo terminerà.
#!/bin/bashvalido=vero
contare=1
mentre [ $valido ]
fare
buttato fuori $conta
Se [ $conta -eq 5 ];
poi
rottura
essere
((conta++))
fatto
Esegui il file con il comando bash.
$bashwhile_example.sh
Puoi controllare il seguente link per saperne di più sull'uso del ciclo while.
https://linuxhint.com/bash-while-loop-examples/
Utilizzo del ciclo For:
La base per La dichiarazione del ciclo è mostrata nell'esempio seguente. Crea un file chiamato ' for_example.sh ' e aggiungi il seguente script usando per ciclo continuo. Qui, per il ciclo itera per 10 volte e stampa tutti i valori della variabile, contatore a riga singola.
#!/bin/bashper (( contatore=10; contatore>0; contatore--))
fare
buttato fuori -n '$contatore'
fatto
printf ' '
Esegui il file con il comando bash.
$bashfor_example.sh
Puoi usare il ciclo for per scopi e modi diversi nel tuo script bash. Puoi controllare il seguente link per saperne di più sull'uso del ciclo for.
https://linuxhint.com/bash-for-loop-examples/
Ottieni input utente:
' leggere ' comando viene utilizzato per ricevere input dall'utente in bash. Crea un file chiamato ' user_input.sh ' e aggiungi il seguente script per ricevere input dall'utente. Qui, un valore di stringa verrà preso dall'utente e verrà visualizzato il valore combinando un altro valore di stringa.
#!/bin/bashbuttato fuori 'Inserisci il tuo nome'
leggerenome
buttato fuori 'Accoglienza$nomea LinuxSuggerimento '
Esegui il file con il comando bash.
$bashuser_input.sh
Puoi controllare il seguente link per saperne di più sull'uso dell'input dell'utente.
https://linuxhint.com/bash-script-user-input/
Usando l'istruzione if:
È possibile utilizzare la condizione if con condizioni singole o multiple. Il blocco iniziale e finale di questa istruzione è definito da 'Se' e 'essere' . Crea un file chiamato ' simple_if.sh ' con il seguente script per conoscerne l'uso Se dichiarazione in bash. Qui, 10 è assegnato alla variabile, n . se il valore di $n è inferiore a 10, l'output sarà È un numero a una cifra , altrimenti l'output sarà È un numero a due cifre . Per confronto, '-Lt' è usato qui. Per confronto, puoi anche usare '-eq' per uguaglianza , '-Nato' per non uguaglianza e '-gt' per più grande di nello script bash.
#!/bin/bashn=10
Se [ $n -lt 10 ];
poi
buttato fuori 'È un numero a una cifra'
altro
buttato fuori 'È un numero a due cifre'
essere
Esegui il file con il comando bash.
$bashsimple_if.sh
Utilizzo dell'istruzione if con logica AND:
Diversi tipi di condizioni logiche possono essere utilizzati nell'istruzione if con due o più condizioni. Come puoi definire più condizioni nell'istruzione if usando E logica è mostrata nell'esempio seguente. '&&' è usato per applicare E logica di Se dichiarazione. Crea un file chiamato 'if_with_AND.sh' per controllare il seguente codice. Qui, il valore di nome utente e parola d'ordine le variabili saranno prese dall'utente e confrontate con ' amministratore ' e ' segreto '. Se entrambi i valori corrispondono, l'output sarà utente valido , altrimenti l'output sarà utente non valido .
!/sono/bashbuttato fuori 'Inserire username'
leggerenome utente
buttato fuori 'Inserire la password'
leggereparola d'ordine
Se [[ ( $nomeutente=='amministratore' && $password=='segreto' ) ]];poi
buttato fuori 'utente valido'
altro
buttato fuori 'utente non valido'
essere
Esegui il file con il comando bash.
$bashif_with_AND.sh
Utilizzo dell'istruzione if con logica OR:
' || 'è usato per definire O logica in Se condizione. Crea un file chiamato 'if_with_OR.sh' con il seguente codice per verificare l'uso di O logica di Se dichiarazione. Qui, il valore di n verrà prelevato dall'utente. Se il valore è uguale a quindici o Quattro cinque allora l'output sarà Hai vinto la partita , altrimenti l'output sarà Hai perso la partita .
#!/bin/bashbuttato fuori 'Inserisci un numero qualsiasi'
leggeren
Se [[ ( $n -eq quindici || $n -eq Quattro cinque ) ]]
poi
buttato fuori 'Hai vinto la partita'
altro
buttato fuori 'Hai perso la partita'
essere
Esegui il file con il comando bash.
$bashif_with_OR.sh
Usando l'istruzione else if:
L'impiego di altrimenti se condizione è leggermente diversa in bash rispetto ad altri linguaggi di programmazione. ' elifa 'è usato per definire altrimenti se condizione in bash. Crea un file chiamato, ' elseif_example.sh ' e aggiungi il seguente script per verificare come altrimenti se è definito nello script bash.
#!/bin/bashbuttato fuori 'Inserisci il tuo numero fortunato'
leggeren
Se [ $n -eq 101 ];
poi
buttato fuori 'Hai vinto il primo premio'
elifa [ $n -eq 510 ];
poi
buttato fuori 'Hai vinto il secondo premio'
elifa [ $n -eq 999 ];
poi
buttato fuori 'Hai ottenuto il 3° premio'
altro
buttato fuori 'Scusa, riprova la prossima volta'
essere
Esegui il file con il comando bash.
$bashelseif_example.sh
Utilizzo della dichiarazione del caso:
Caso l'istruzione è usata come alternativa di if-elseif-else dichiarazione. Il blocco iniziale e finale di questa istruzione è definito da ' Astuccio ' e ' esac '. Crea un nuovo file chiamato, ' caso_esempio.sh ' e aggiungi il seguente script. L'output del seguente script sarà lo stesso del precedente altrimenti se esempio.
#!/bin/bashbuttato fuori 'Inserisci il tuo numero fortunato'
leggeren
Astuccio $n in
101)
buttato fuori buttato fuori 'Hai vinto il primo premio' ;;
510)
buttato fuori 'Hai vinto il secondo premio' ;;
999)
buttato fuori 'Hai ottenuto il 3° premio' ;;
*)
buttato fuori 'Scusa, riprova la prossima volta' ;;
esac
Esegui il file con il comando bash.
$bashcaso_esempio.sh
Ottieni argomenti dalla riga di comando:
Lo script Bash può leggere l'input dall'argomento della riga di comando come altri linguaggi di programmazione. Per esempio, $ 1 e $ 2 vengono utilizzate per leggere gli argomenti della prima e della seconda riga di comando. Crea un file chiamato command_line.sh e aggiungi il seguente script. Due valori di argomento letti dallo script seguente e stampa il numero totale di argomenti e i valori degli argomenti come output.
#!/bin/bashbuttato fuori 'Totale argomenti: $#'
buttato fuori 'Primo argomento = $1'
buttato fuori '2° argomento = $2'
Esegui il file con il comando bash.
$bashcommand_line.sh Linux Suggerimento
Puoi controllare il seguente link per saperne di più sull'uso dell'argomento della riga di comando.
https://linuxhint.com/command_line_arguments_bash_script/
Ottieni argomenti dalla riga di comando con i nomi:
Come puoi leggere gli argomenti della riga di comando con i nomi è mostrato nello script seguente. Crea un file chiamato, ' command_line_names.sh' e aggiungere il seguente codice. Qui, due argomenti, X e E vengono letti da questo script e stampano la somma di X e Y.
#!/bin/bashperarrabbiatoin '[e-mail protetta]'
fare
indice= $(buttato fuori $ argomento | tagliare -f1 -D=)
ore= $(buttato fuori $ argomento | tagliare -f2 -D=)
Astuccio $indice in
X) X=$ ore;;
E) e=$ ore;;
*)
esac
fatto
((risultato= x + y))
buttato fuori 'X + Y =$risultato'
Esegui il file con il comando bash e con due argomenti della riga di comando.
$bashcommand_line_namesX=Quattro cinque E=30
Combina variabili stringa:
Puoi facilmente combinare variabili stringa in bash. Crea un file chiamato string_combine.sh e aggiungi il seguente script per verificare come combinare le variabili stringa in bash mettendo insieme le variabili o usando '+' operatore.
#!/bin/bashstringa1='Linux'
stringa2='Suggerimento'
buttato fuori '$stringa1$stringa2'
stringa3=$stringa1+$stringa2
stringa3+='è un buon sito di blog tutorial'
buttato fuori $stringa3
Esegui il file con il comando bash.
$bashstring_combine.sh
Ottieni la sottostringa di String:
Come altri linguaggi di programmazione, bash non ha una funzione integrata per tagliare il valore da qualsiasi dato di stringa. Ma puoi eseguire il compito della sottostringa in un altro modo in bash mostrato nel seguente script. Per testare lo script, crea un file chiamato ' sottostringa_esempio.sh ' con il seguente codice. Qui, il valore, 6 indica il punto di partenza da cui partirà la sottostringa e 5 indica la lunghezza della sottostringa.
#!/bin/bashStr='Impara Linux da LinuxHint'
subStr=$ {Str: 6: 5}
buttato fuori $subStr
Esegui il file con il comando bash.
$bashsottostringa_esempio.sh
Aggiungi due numeri:
Puoi eseguire le operazioni aritmetiche in bash in diversi modi. Come puoi aggiungere due numeri interi in bash usando le doppie parentesi è mostrato nello script seguente. Crea un file chiamato ' add_numbers.sh ' con il seguente codice. Due valori interi verranno presi dall'utente e stampato il risultato dell'addizione.
#!/bin/bashbuttato fuori 'Inserisci il primo numero'
leggereX
buttato fuori 'Inserisci il secondo numero'
leggeree
(( somma= x + y))
buttato fuori 'Il risultato dell'addizione=$somma'
Esegui il file con il comando bash.
$bashadd_numbers.sh
Puoi controllare il seguente link per saperne di più sull'aritmetica bash.
https://linuxhint.com/bash_arithmetic_operations/
Crea funzione:
Come è possibile creare una semplice funzione e chiamare la funzione è mostrato nello script seguente. Crea un file chiamato ' esempio_funzione.sh ' e aggiungi il seguente codice. Puoi chiamare qualsiasi funzione solo per nome senza utilizzare alcuna parentesi nello script bash.
#!/bin/bashfunzioneF1()
{
buttato fuori 'Mi piace la programmazione bash'
}
F1
Esegui il file con il comando bash.
$bashesempio_funzione.sh
Crea funzione con parametri:
Bash non può dichiarare parametri o argomenti della funzione al momento della dichiarazione della funzione. Ma puoi usare i parametri in funzione usando un'altra variabile. Se vengono passati due valori al momento della chiamata della funzione, vengono utilizzate le variabili $1 e $2 per leggere i valori. Crea un file chiamato ' funzione|_parametro.sh ' e aggiungi il seguente codice. Qui, la funzione, ' Rettangolo_Area' calcolerà l'area di un rettangolo in base ai valori dei parametri.
#!/bin/bashRectangle_Area() {
la zona= $(($ 1 * $ 2))
buttato fuori 'L'area è:$area'
}
Rectangle_Area10 venti
Esegui il file con il comando bash.
$bashparametro_funzione.sh
Passa valore restituito dalla funzione:
La funzione Bash può passare sia valori numerici che stringa. Come è possibile passare un valore stringa dalla funzione è mostrato nell'esempio seguente. Crea un file chiamato, ' function_return.sh ' e aggiungi il seguente codice. La funzione, saluto() restituisce un valore stringa nella variabile, ore che stampa in seguito combinando con un'altra stringa.
#!/bin/bashfunzionesaluto() {
P='Ciao,$nome'
buttato fuori $ str
}
buttato fuori 'Inserisci il tuo nome'
leggerenome
ore= $(saluto)
buttato fuori 'Il valore di ritorno della funzione è$ ore'
Esegui il file con il comando bash.
$bashfunction_return.sh
Puoi controllare il seguente link per saperne di più sull'uso della funzione bash.
https://linuxhint.com/return-string-bash-functions/
Crea directory:
Bash usa ' mkdir ' comando per creare una nuova directory. Crea un file chiamato ' make_directory.sh ' e aggiungi il seguente codice per prendere un nuovo nome di directory dall'utente. Se il nome della directory non esiste nella posizione corrente, creerà la directory, altrimenti il programma visualizzerà un errore.
#!/bin/bashbuttato fuori 'Inserisci il nome della directory'
leggerenuova directory
``mkdir $ newdir``
Esegui il file con il comando bash.
$bashmake_directory.sh
Crea directory controllando l'esistenza:
Se si desidera verificare l'esistenza della directory nella posizione corrente prima di eseguire il ' mkdir ' allora puoi usare il seguente codice. '-D ' L'opzione viene utilizzata per verificare che una determinata directory esista o meno. Crea un file chiamato, ' directory_exist.sh' e aggiungi il seguente codice per creare una directory controllando l'esistenza.
#!/bin/bashbuttato fuori 'Inserisci il nome della directory'
leggerendr
Se [ -D '$ndir' ]
poi
buttato fuori 'Directory esistente'
altro
``mkdir $ndir``
buttato fuori 'Cartella creata'
essere
Esegui il file con il comando bash.
$bashdirectory_exist.sh
Puoi controllare il seguente link per saperne di più sulla creazione di directory.
https://linuxhint.com/bash_mkdir_not_existent_path/
Leggi un file:
Puoi leggere qualsiasi file riga per riga in bash usando loop. Crea un file chiamato, ' read_file.sh ' e aggiungi il seguente codice per leggere un file esistente denominato, ' libro.txt '.
#!/bin/bashfile='libro.txt'
mentre leggerelinea;fare
buttato fuori $line
fatto < $file
Esegui il file con il comando bash.
$bashread_file.shEsegui il seguente comando per controllare il contenuto originale di ' libro.txt ' file.
$gattolibro.txt
Puoi controllare il seguente link per conoscere i diversi modi di leggere il file.
https://linuxhint.com/read_file_line_by_line_bash/
Elimina un file:
' rm ' viene utilizzato in bash per rimuovere qualsiasi file. Crea un file chiamato ' delete_file.sh ' con il seguente codice per prendere il nome del file dall'utente e rimuoverlo. Qui, '-io' L'opzione viene utilizzata per ottenere l'autorizzazione dall'utente prima di rimuovere il file.
#!/bin/bashbuttato fuori 'Inserisci il nome del file da rimuovere'
leggerefn
rm -io $fn
Esegui il file con il comando bash.
$ls$bashdelete_file.sh
$ls
Aggiungi al file:
È possibile aggiungere nuovi dati a qualsiasi file esistente utilizzando '>>' operatore in bash. Crea un file chiamato ‘append_file.sh ' e aggiungi il seguente codice per aggiungere nuovi contenuti alla fine del file. Qui, ' Imparare Laravel 5 ' sarà aggiunto al di ' libro.txt' file dopo aver eseguito lo script.
#!/bin/bashbuttato fuori 'Prima di aggiungere il file'
gattolibro.txt
buttato fuori 'Imparare Laravel 5'>>libro.txt
buttato fuori 'Dopo aver aggiunto il file'
gattolibro.txt
Esegui il file con il comando bash.
$bashappend_file.sh
Verifica se il file esiste:
Puoi controllare l'esistenza del file in bash usando ‘-e’ o '-F' opzione. '-F' L'opzione viene utilizzata nello script seguente per verificare l'esistenza del file. Crea un file chiamato, ' file_exist.sh ' e aggiungi il seguente codice. Qui, il nome del file passerà dalla riga di comando.
#!/bin/bashnome del file=$ 1
Se [ -F '$nomefile' ];poi
buttato fuori 'Il file esiste'
altro
buttato fuori 'Il file non esiste'
essere
Eseguire i seguenti comandi per verificare l'esistenza del file. Qui, libro.txt il file esiste e book2.txt non esiste nella posizione corrente.
$ls$bashfile_exist.sh libro.txt
$bashfile_exist.sh book2.txt
Invia una email:
Puoi inviare e-mail utilizzando ' posta ' o ' inviare una mail ' comando. Prima di usare questi comandi, devi installare tutti i pacchetti necessari. Crea un file chiamato, ' mail_esempio.sh ' e aggiungi il seguente codice per inviare l'e-mail.
#!/bin/bashDestinatario=amministratore@esempio.com
Soggetto=Saluto
Messaggio=Benvenuto nel nostro sito
``posta-S $Soggetto $destinatario <<< $Messaggio``
Esegui il file con il comando bash.
$bashmail_esempio.sh
Ottieni analisi della data corrente:
Puoi ottenere la data e l'ora del sistema corrente usando ` Data ` comando. Ogni parte del valore di data e ora può essere analizzata usando ' Y', 'm', 'd', 'H', 'M' e ' S' . Crea un nuovo file chiamato ' date_parse.sh' e aggiungi il seguente codice per separare i valori di giorno, mese, anno, ora, minuto e secondo.
#!/bin/bashAnno=``Data+%E``
Mese=``Data+%m``
Giorno=``Data+%D``
Ora=``Data+%h``
Minuto=``Data+%m``
Secondo=``Data+%S``
buttato fuori ``Data``
buttato fuori 'La data attuale è:$giorno-$Mese-$anno'
buttato fuori 'L'ora corrente è:$Ora:$Minuto:$Secondo'
Esegui il file con il comando bash.
$bashdate_parse.sh
Comando di attesa:
aspettare è un comando integrato di Linux che attende il completamento di qualsiasi processo in esecuzione. aspettare comando viene utilizzato con un particolare ID processo o ID lavoro. Se non viene fornito alcun ID processo o ID lavoro con il comando wait, attenderà il completamento di tutti i processi figlio correnti e restituirà lo stato di uscita. Crea un file chiamato ' wait_example.sh' e aggiungi il seguente script.
#!/bin/bashbuttato fuori 'Attendi comando' &
id_processo=$!
aspettare $process_id
buttato fuori 'Esci con stato $?'
Esegui il file con il comando bash.
$bashwait_example.sh
Puoi controllare il seguente link per saperne di più sul comando wait.
Comando di sonno:
Quando vuoi mettere in pausa l'esecuzione di qualsiasi comando per un periodo di tempo specifico, puoi usare dormire comando. È possibile impostare l'importo del ritardo di secondi (s), minuti (m), ore (h) e giorni (d). Crea un file chiamato 'esempio_sleep.sh' e aggiungi il seguente script. Questo script attenderà 5 secondi dopo l'esecuzione.
#!/bin/bashbuttato fuoriAspettareper 5secondi
dormire 5
buttato fuoriCompletato
Esegui il file con il comando bash.
$bashsleep_example.sh
Puoi controllare il seguente link per saperne di più sul comando di sospensione.
https://linuxhint.com/sleep_command_linux/
Spero che dopo aver letto questo articolo tu abbia un concetto di base sul linguaggio di scripting bash e sarai in grado di applicarli in base alle tue esigenze.