Einführung in Funktionen in Unix

In diesem Artikel lernen wir einige grundlegende Funktionen in Unix kennen. Viele von uns haben vielleicht schon gewusst, was Funktionen sind, aber lassen Sie mich eine kurze Einführung geben. Eine Funktion enthält eine Reihe von Anweisungen, die von einem Code in einem eingerückten Block ausgeführt werden. Diese sind nützlich, wenn wir eine bestimmte Aufgabe haben, die ein Programm in regelmäßigen Zeitabständen wiederholt ausführen muss. Es ist offensichtlich nicht empfehlenswert, jedes Mal den gleichen Code zu schreiben. Mithilfe von Funktionen können wir den Code problemlos wiederverwenden und bei Bedarf aufrufen. Lassen Sie uns nun sehen, wie wir diese Funktionen durch Unix-Shell-Skripte definieren und implementieren können.

Syntax von Funktionen in Unix

Die Erstellung von Funktionen folgt dem grundlegenden Syntaxcode wie folgt. Beispielbeispiel einer Funktion.

Code

First()
(
echo “ First Program for defining functions ”;
echo “ Yayyy! “;
)

Hier haben wir zwei Echo-Anweisungen in unserer ersten Funktion geschrieben. Zum Aufrufen der Funktion können wir nur den Funktionsnamen aufrufen.

Ausgabe

Übergeben von Parametern an Function in Unix

Wir haben erfolgreich eine einfache Funktion erstellt, sie aufgerufen und die erforderlichen Befehle ausgeführt. Was ist nun, wenn ich zwei Zahlen durch vom Benutzer eingegebene Werte hinzufügen muss? Hier würden wir also sehen, wie wir eine Funktion mit Argumenten schreiben können. Die grundlegende Syntax wäre dieselbe. Beispiel für eine parametrierte Funktion

Code

Second()
(
echo “Enter your name: “;
read name;
echo “Hi $name, have a good day”;
)

Ausgabe

Sie werden aufgefordert, einen Namen einzugeben und diesen zu wünschen

Auf die gleiche Weise können wir sogar eine Skriptdatei erstellen. Lassen Sie uns eine zusätzliche Funktion in ein Shell-Skript schreiben und sehen, wie es funktioniert.

Code

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!

Ausgabe

Hinweis: Manchmal wird beim Ausführen des sh-Skripts der folgende Fehler angezeigt:

Das einzige, was Sie hier tun müssen, ist die Aktualisierung der Dateiberechtigungen.

Wir können die sh-Datei sogar mit dem Befehl von ausführen. /add.sh

Auf die gleiche Weise können wir sogar eine Funktion ausführen, indem wir Befehlszeilenargumente angeben. Schauen wir uns also an, wie wir dies durch Hinzufügen von drei Zahlen erreichen können.

Code

(
number1=$1;
number2=$2;
number3=$3;
sum=$((number1+number2+number3));
echo “Sum is $sum”;
)

Jetzt können wir unsere Zahlen als Befehlszeilenargumente übergeben und dann die erforderliche Ausgabe erhalten.

Was ist, wenn wir keine Argumente an die Funktion übergeben?

Und wenn wir nur zwei Argumente geben?

Andernfalls können wir Saiten übergeben?

Wir können unseren Code sogar so haben, dass er einen Fehler ausgibt, wenn ungültige Argumente übergeben werden. Nachfolgend sehen wir uns an, wie wir den Benutzer zur Eingabe von Argumenten auffordern können, wenn keine Befehlszeilenargumente übergeben wurden.

Code

Add()
(
number1=$1;
number2=$2;
if ( $# -ne 2 ); then
echo “ Enter two numbers to add “;
fi
sum=$((number1+number2));
echo “ Sum is : $sum “;
)

Ausgabe

Wenn wir keine Argumente an unsere Funktion übergeben, wird das Echo dort ausgegeben, wo wir aufgefordert haben, zwei Befehlszeilennummern anzugeben und dann die Ausgabe von sum zu geben. Dies ist der Fall, da wir der Funktion nicht gesagt haben, dass sie angehalten werden soll, wenn der Fehler auftritt. Im zweiten Fall können wir sehen, dass die ausgegebene Summe ohne Zwischenecho korrekt ist. Wir können sogar Return-Befehle verwenden, um Werte für diese Unix-Funktionen zurückzugeben. Der Wert in der return-Anweisung wird in $? Gespeichert.

Ausgabe

Können Sie als Übung versuchen, eine Funktion zu schreiben, die ausbricht, wenn wir die Argumente nicht übergeben?

Verschachtelte Funktionen in Unix

Durch die Benennung können wir herausfinden, dass verschachtelte Funktionen eine Funktion innerhalb einer Funktion definieren. Mal sehen, wie wir das jetzt machen können. Wir schreiben dies in ein Shell-Skript, um das Verständnis zu erleichtern.

Code

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!

Ausgabe

Im obigen Beispiel haben wir gerade die zweite Funktion innerhalb der ersten aufgerufen. Schreiben wir nun eine Funktion nur innerhalb der ersten Funktion.

Code

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!

Welchen Output erwarten Sie nun? Denken Sie, dass sowohl die Details der ersten als auch der zweiten Funktion angezeigt werden würden?

Ausgabe

Wir können deutlich sehen, dass die Funktion nicht die innere Funktion darin aufgerufen hat. Also, was ist das Problem hier?

In unserem Skript haben wir nur die erste Funktion aufgerufen. Versuchen Sie es jetzt, indem Sie auch die zweite Funktion aufrufen. Wie bereits erwähnt, können wir die Funktion hier nicht alleine aufrufen. Im obigen Code haben wir den hinzugefügten Code hervorgehoben.

Ausgabe

Beachten Sie, dass das Echo, das wir nach der Ausführung der zweiten Funktion geschrieben haben, vor sich selbst gekommen ist. Wenn wir nun versuchen, zuerst die zweite Funktion aufzurufen, gefolgt von der ersten?

Ausgabe

Wir können klar verstehen, dass die innere Funktion erst aufgerufen wird, wenn die Haupt- / Erstfunktion aufgerufen wird. Können Sie als Übung die Addition von zwei Zahlen mit verschachtelten Funktionen versuchen? (Eine zur Eingabe von Benutzerwerten und andere zum Hinzufügen der Zahlen)

Fazit

So können wir also Funktionen in Unix definieren. Und ein großer Vorteil von Unix war, dass der Fehler in der Ausgabe leicht zu verstehen ist und dazu beiträgt, unseren Code entsprechend zu korrigieren. Versuchen Sie, diese Funktionen auszuführen, und verwenden Sie auch den Befehl return. Viel Spaß beim Lernen in Unix.

Empfohlener Artikel

Dies war eine Anleitung zu Funktionen in Unix. Hier diskutieren wir eine Einführung in Funktionen in Unix und verschiedene Arten von Funktionen, zusammen mit Syntax und detaillierten Erklärungen. Sie können auch unsere anderen Artikelvorschläge durchgehen, um mehr zu erfahren -

  1. Unix-Architektur
  2. Unix-Befehle
  3. Verwendung von Unix
  4. Fragen zum UNIX-Interview
  5. Leitfaden für Unix-Operatoren