Funzioni in Unix - Diversi tipi di funzioni in Unix con sintassi

Sommario:

Anonim

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ù -

  1. Unix Architecture
  2. Comandi Unix
  3. Usi di Unix
  4. Domande di intervista UNIX
  5. Guida agli operatori Unix