Introduzione alle funzioni in Unix
In questo articolo, impareremo alcune funzioni di base in Unix. Molti di noi potrebbero già sapere quali sono le funzioni, ma lasciatemi fare una breve introduzione al riguardo. Una funzione contiene una serie di istruzioni che devono essere eseguite da un codice scritto all'interno di un blocco rientrato. Questi sono utili quando abbiamo un determinato compito che un programma deve svolgere ripetutamente durante intervalli di tempo regolari. Ovviamente non è consigliabile scrivere lo stesso codice ogni volta, quindi utilizzando le funzioni possiamo facilmente riutilizzare il codice e chiamarlo quando necessario. Vediamo ora come possiamo definire e implementare queste funzioni tramite lo scripting Unix Shell.
Sintassi delle funzioni in Unix
La creazione di funzioni segue il codice di sintassi di base come segue. Esempio di esempio di una funzione.
Codice
First()
(
echo “ First Program for defining functions ”;
echo “ Yayyy! “;
)
Qui, abbiamo scritto due dichiarazioni di eco all'interno della nostra prima funzione. Per chiamare la funzione, possiamo semplicemente chiamare con il nome della funzione.
Produzione
Passare i parametri alla funzione in Unix
Abbiamo creato con successo una semplice funzione, la abbiamo chiamata ed eseguito i comandi richiesti. Ora, cosa succede se devo aggiungere due numeri tramite i valori immessi dall'utente? Quindi, qui vedremmo come possiamo scrivere una funzione con argomenti. La sintassi di base sarebbe la stessa. Esempio di funzione parametrizzata
Codice
Second()
(
echo “Enter your name: “;
read name;
echo “Hi $name, have a good day”;
)
Produzione
Ci chiederà di inserire un nome e desiderarli
Allo stesso modo, possiamo persino creare un file di script. Scriviamo un'ulteriore funzione all'interno di uno script di shell e vediamo come funziona.
Codice
vi add.sh
echo “enter first number: “;
read a;
echo “enter the second number: “;
read b;
sum=$((a+b));
echo “ Result is $sum”;
*********************
Save the file with : wq!
Produzione
Nota: a volte durante l'esecuzione dello script sh potremmo ottenere l'errore come:
L'unica cosa che deve fare qui è aggiornando le autorizzazioni del file.
Possiamo persino eseguire il file sh usando il comando di. /add.sh
Allo stesso modo, possiamo persino eseguire una funzione fornendo argomenti da riga di comando. Quindi, vediamo come possiamo farlo attraverso l'aggiunta di tre numeri.
Codice
(
number1=$1;
number2=$2;
number3=$3;
sum=$((number1+number2+number3));
echo “Sum is $sum”;
)
Ora possiamo passare i nostri numeri come argomenti della riga di comando e quindi ottenere l'output richiesto.
E se non passassimo argomenti alla Funzione?
E, se diamo solo due argomenti?
Altrimenti, possiamo passare le stringhe?
Possiamo persino avere il nostro codice in modo tale che possa echeggiare un errore quando vengono passati argomenti non validi. Di seguito, vediamo come possiamo chiedere all'utente di inserire argomenti se non sono stati passati argomenti da riga di comando.
Codice
Add()
(
number1=$1;
number2=$2;
if ( $# -ne 2 ); then
echo “ Enter two numbers to add “;
fi
sum=$((number1+number2));
echo “ Sum is : $sum “;
)
Produzione
Se non passiamo alcun argomento alla nostra Funzione, questo dà il nostro eco dove ci è stato chiesto di dare due numeri della riga di comando e quindi di dare l'output della somma. Lo fa, poiché non abbiamo detto alla funzione di arrestarsi se riscontriamo l'errore. Nel secondo caso, possiamo vedere l'output che dà correttamente la somma senza alcun eco intermedio. Possiamo persino usare i comandi return per restituire i valori per queste funzioni Unix. Il valore nell'istruzione return è stato archiviato in $?
Produzione
Come esercizio, puoi provare a scrivere una funzione che scoppia se non passiamo gli argomenti?
Funzioni nidificate in Unix
Con la denominazione possiamo capire che le funzioni nidificate riguardano la definizione di una funzione all'interno di una funzione. Vediamo come possiamo farlo ora. Stiamo scrivendo questo all'interno di uno script di shell per una più facile comprensione.
Codice
vi Nested_Function.sh
***** Code Inside the sh Function*******
#!/bin/sh
First()
(
echo “ Inside First Function “;
echo “ Calling the second function below “;
echo “**********”;
Second
echo “**********”;
echo “ After calling Second function “;
)
Second()
(
echo “ Inside Second Function”;
echo “ Done “;
)
First
************************
Save the file with : wq!
Produzione
Nell'esempio sopra, abbiamo appena chiamato la seconda funzione all'interno della prima. Ora scriviamo una funzione solo all'interno della prima funzione.
Codice
vi Nest_Func1.sh
***** Code Inside the sh Function*******
First_One()
(
echo “ Inside the function First_One”;
echo “ Below is the inner function “;
Second_One()
(
echo “ ********** “;
echo “ Inside Inner function”;
echo “ Completed Second Function”;
echo “ ********** “;
)
echo “Done with second example too”;
)
First_One
Second_one
************************
Save the file with : wq!
Ora, quale uscita ti aspetti? Pensi che verrebbero visualizzati entrambi i dettagli della prima e della seconda funzione?
Produzione
Possiamo vedere chiaramente che la Funzione non ha chiamato la funzione interna al suo interno. Quindi, qual è il problema qui?
All'interno della nostra sceneggiatura, abbiamo chiamato solo la prima funzione. Ora prova anche chiamando la seconda funzione. Come osservato, qui non saremo in grado di chiamare la Funzione da sola. Nel codice sopra, abbiamo evidenziato il codice aggiunto.
Produzione
Si noti che l'eco che abbiamo scritto dopo l'esecuzione della Seconda Funzione è venuta prima di se stessa. Ora, se proviamo a chiamare prima la seconda funzione, seguita dalla prima?
Produzione
Possiamo capire chiaramente che fino a quando non viene chiamata la funzione principale / prima non viene chiamata la funzione interna. Come esercizio, puoi provare ad aggiungere due numeri usando le funzioni annidate? (Uno per l'inserimento di valori utente e altri per aggiungere i numeri)
Conclusione
Quindi, ecco come possiamo definire le funzioni in Unix. E uno dei principali vantaggi di Unix che ho riscontrato è che l'errore nell'output può essere facilmente compreso e può aiutare a correggere il nostro codice di conseguenza. Prova a eseguire quelle funzioni e usa anche il comando return. Buon apprendimento in Unix.
Articolo raccomandato
Questa è stata una guida alle funzioni in Unix. Qui discutiamo un'introduzione a Funzioni in Unix e diversi tipi di funzioni insieme a sintassi e spiegazione dei dettagli. Puoi anche consultare i nostri altri articoli suggeriti per saperne di più -
- Unix Architecture
- Comandi Unix
- Usi di Unix
- Domande di intervista UNIX
- Guida agli operatori Unix