Tutorial Funzioni Bash

Tutorial Funzioni Bash
Una funzione bash è una raccolta di comandi che possono essere eseguiti ripetutamente. L'obiettivo della funzione è quello di semplificare la lettura degli script bash e impedirti di digitare lo stesso script spesso. Le funzioni di Bash sono notevolmente limitate rispetto a quelle della maggior parte dei linguaggi di programmazione. Per l'esecuzione passo-passo, questo file contiene vari comandi. Sebbene questi comandi possano essere inseriti semplicemente nella riga di comando, è più conveniente salvare tutti i comandi interconnessi per una determinata operazione in un singolo file dal punto di vista della riusabilità. Possiamo utilizzare quel file per eseguire il set di comandi specificato, una sola volta o più volte, a seconda delle nostre esigenze. In questa lezione, passeremo i fondamenti delle funzioni bash e dimostreremo come usarle negli script di shell.

Esempio 1

Una funzione è una sezione di codice che può essere chiamata più volte per svolgere attività specifiche nella programmazione. La lunghezza del codice è ridotta e viene fornita la modularità del programma. L'illustrazione più elementare dell'applicazione di una funzione negli script bash è mostrata nel seguente:

#!/Bin/Bash
BashFunction ()
Echo Ciao, miei amici Linux

Bashfunction

Nello script precedente, abbiamo definito la funzione Bashfunction. Al suo interno, abbiamo una dichiarazione di eco. Quindi, abbiamo chiamato la funzione Bashfunction Per eseguire la funzione.

L'output della funzione di base bash è stampata sul terminale:

Linuxhint@hp34: ~ $ chmod +x test.sh; ./test.sh
Ciao, miei amici Linux
Linuxhint@hp34: ~ $

Esempio 2

Possiamo passare argomenti e elaborare i dati con funzioni bash come in altri linguaggi di programmazione. Simile ai parametri della riga di comando di passaggio a uno script bash, possiamo inserire dati nella funzione. Dobbiamo aggiungere i parametri immediatamente seguendo il nome della funzione per fornire un numero qualsiasi di argomenti alla funzione bash. Quando si chiama la funzione, possiamo passare direttamente gli argomenti e utilizzare i valori $ 1, $ 2, ... $ n per accedervi all'interno della funzione.

#!/Bin/Bash
multiply_two_numbers ()
Prodotto locale = $ (($ 1*$ 2))
Il prodotto Echo di $ 1 e $ 2 è $ Product

multiply_two_numbers 5 2

Nello script precedente, abbiamo creato la funzione multiply_two_numbers. Nella funzione, abbiamo creato la variabile Prodotto e assegnato l'equazione del prodotto da calcolare. Il comando Echo viene quindi utilizzato per stampare il risultato del calcolo per il prodotto di due valori. Successivamente, abbiamo fornito i due argomenti, 5 e 2, assegnati alla funzione multiply_two_numbers.

La shell del terminale dopo l'esecuzione dello script è mostrata nella seguente immagine:

Linuxhint@hp34: ~ $ chmod +x test.sh; ./test.sh
Prodotto di 5 e 2 è 10
Linuxhint@hp34: ~ $

Esempio 3

La maggior parte dei linguaggi di programmazione supporta l'idea di funzioni che restituiscono un valore. Implica che la funzione deve restituire i dati nel luogo da cui viene chiamato. Le funzioni bash non supportano il restituzione di un valore quando vengono chiamate, a differenza delle funzioni nei linguaggi di programmazione reali. Tuttavia, ci danno la possibilità di stabilire uno stato di reso, che funziona in modo simile allo stato di uscita utilizzato da un programma o comando per terminare.

La variabile $? è assegnata la parola ritorno, che può essere impiegato per descrivere lo stato attuale del reso. La funzione è terminata dall'istruzione di ritorno, che funge anche da stato di uscita per la funzione.

#!/Bin/Bash
my_function ()
Ritorno 14

my_function
Echo il valore restituito è $?

Nella sceneggiatura, in primo luogo, abbiamo stabilito una funzione my_function. Nella funzione, abbiamo una parola chiave di ritorno che prende il valore 14. Quindi, abbiamo invocato la funzione my_function, che ha un'istruzione Echo che restituirà il valore a $?.

Lo script bash output Il valore specificato in un comando di ritorno come segue:

Linuxhint@hp34: ~ $ chmod +x test.sh; ./test.sh
Il valore restituito è 14
Linuxhint@hp34: ~ $

Esempio 4

In uno script, una variabile globale è una variabile a cui è possibile accedere da qualsiasi posizione e non ha restrizioni sul suo ambito. Anche se una variabile viene dichiarata all'interno di una funzione, viene automaticamente definita come una variabile globale. Le variabili possono anche essere create localmente. Una volta che sono stati assegnati per la prima volta, le variabili locali possono essere specificate all'interno del corpo della funzione usando la parola chiave Locale. Solo quella funzione ti consente di accedervi. Lo stesso nome potrebbe essere dato alle variabili locali create in altre funzioni.

#!/Bin/Bash
var1 = "gatto"
Animale_names_fun ()
locale var2 = "cane"
var3 = "pecora"
echo "Il nome del primo animale è $ var1"
echo "Il nome del secondo animale è $ var2"

Animale_names_fun
echo "Il nome del primo animale è $ var1"
echo "Il nome del primo animale è $ var2"
echo "Il nome del primo animale è $ var3"

Lo script bash inizia con la dichiarazione della variabile globale var1 e inizializzalo con il valore di una stringa. Quindi, abbiamo creato la funzione Animale_names_fun. Alla funzione Animale_names_fun, Abbiamo impostato la variabile locale con la parola chiave locale e una variabile globale. Le variabili locali e globali sono state definite con i nomi var2 E var3, E abbiamo anche impostato i loro valori. Quindi, abbiamo fatto eco alla variabile globale var1 All'interno della funzione e della variabile locale var2 all'interno della funzione. Dopodiché, abbiamo chiamato la funzione Animale_names_fun e accesso alle variabili globali var1 E var3, che di solito eseguono, ma mentre stiamo cercando di accedere alla variabile locale Val2 Al di fuori della funzione specificata, restituirà un valore vuoto.

È possibile avvisare l'output di accedere alle variabili locali e globali nel programma Bash come segue:

Linuxhint@hp34: ~ $ chmod +x test.sh; ./test.sh
Il nome del primo animale è gatto
Il nome del secondo animale è cane
Il nome del primo animale è gatto
Il nome del primo animale è
Il nome del primo animale è pecora
Linuxhint@hp34: ~ $

Esempio 5

Nominando una funzione uguale al comando che vogliamo sovrascrivere, possiamo scegliere di sovrascrivere i comandi bash. Ad esempio, dobbiamo scrivere una funzione chiamata eco Se intendiamo sovrascrivere il comando Echo.

Questa idea di prevalente comandi bash può essere utile in alcune circostanze, ad esempio quando vogliamo utilizzare un comando con opzioni particolari. Inoltre, ci sono situazioni in cui non vogliamo ripetere l'intero comando con le opzioni all'interno dello script. Possiamo utilizzare le opzioni per modificare il comando bash integrato in queste situazioni. Usiamo un esempio per capire meglio l'idea di comandi prevalente nello scripting di Shell Bash:

#!/Bin/Bash
eco ()
ECHO ECHO -N -N 'date +"[%m-%d%H:%m:%s]"' ":"
Echo incorporato $ 1

Echo "Benvenuti nei miei blog."

Nel precedente script bash, abbiamo un'eco di funzione. All'interno della funzione Echo, ovalichiamo il comando Echo e inseriamo il metodo Timestamp integrato come argomento per il comando Echo.

L'output della funzione di override bash viene visualizzata nella seguente immagine:

Linuxhint@hp34: ~ $ chmod +x test.sh; ./test.sh
[12-06 15:54:50]: Benvenuti nei miei blog.
Linuxhint@hp34: ~ $

Conclusione

Abbiamo discusso della funzione bash su questo argomento. Un pezzo di codice riutilizzabile creato esplicitamente per un determinato compito è chiamato una funzione bash. Una volta definito, può essere usato più volte in uno script. Bash si impegna con il sistema operativo per eseguire i comandi ricevuti dalla shell dopo averli letto. Una caratteristica fantastica di Bash è che ti consente di combinare molti dei suoi comandi e funzioni in un singolo script eseguibile, il che rende più facile organizzare il tuo lavoro.