logo

Bash-Scripting – Funktionen

Ein Bash-Skript ist eine reine Textdatei. Diese Datei enthält verschiedene Befehle zur schrittweisen Ausführung. Diese Befehle können direkt in die Befehlszeile geschrieben werden. Aus Gründen der Wiederverwendbarkeit ist es jedoch sinnvoll, alle miteinander verbundenen Befehle für eine bestimmte Aufgabe in einer einzigen Datei zu speichern. Wir können diese Datei verwenden, um den Befehlssatz je nach unseren Anforderungen ein- oder mehrmals auszuführen.

Hier in diesem Artikel werden wir die Verwendung von Funktionen innerhalb von Bash Scripting diskutieren.

In der Programmierung ist eine Funktion ein Codeblock, der einige Aufgaben ausführt und zur Ausführung von Aufgaben mehrmals aufgerufen werden kann. Es sorgt für Modularität im Programm und reduziert die Codelänge. Das einfachste Beispiel für die Verwendung von Funktionen in Bash-Skripten kann wie folgt angegeben werden:



Beispielskript:

#!/bin/bash #It is a function myFunction () { echo Hello World from techcodeview.com } #function call myFunction>

Ausgabe:

Hello World from techcodeview.com>

Das obige Beispiel zeigt eine Funktion, die beim Aufruf etwas ausgibt. Die grundlegende Syntax zum Schreiben von Funktionen in einem Bash-Skript lautet also

Syntax:

# for defining function_name(){ commands ..... } function_name # for calling>

Darüber hinaus können wir auch Funktionen mit übergebenden Argumenten und mit Rückgabewerten haben. Lassen Sie uns sie nun besprechen.

Funktionen mit Übergabeargumenten

Wir können einer Funktion Argumente oder Parameter hinzufügen und damit Daten an die Funktion übergeben, damit die Funktion mit diesen Daten agieren kann. Beim Bash-Scripting können wir die folgende Syntax zum Schreiben einer Funktion mit Übergabe von Argumenten verwenden.

Syntax von Funktionen mit Übergabeargumenten:

#for defining function_name(){ ..... parameter_1 =  parameter_2 =  . . . parameter_n = $n .... commands ..... } #for calling function_name p1 p2 ....pn>

Wir können die Argumente direkt beim Aufruf der Funktion übergeben und mit darauf zugreifen , ….. $n innerhalb der Funktion. Sehen wir uns ein Beispiel an, um es besser zu verstehen.

Beispiel für Funktionen mit Übergabeargumenten:

#!/bin/bash add_two_num(){ local sum=$((+)) echo sum of  and  is $sum } add_two_num 2 3>

Ausgabe von Funktionen mit Übergabeargumenten:

sum of 2 and 3 is 5>

Oben ist ein Skript zum Addieren zweier Zahlen. Hier haben wir 2 und 3 als Argumente angegeben. Wir haben mit und aus der Funktion auf sie zugegriffen, ihre Summe berechnet und auf dem Terminal ausgegeben. Unten sehen Sie die Darstellung der Terminal-Shell nach der Ausführung des Skripts:

Ausgabe von Funktionen mit Übergabeargumenten

Funktionen mit Rückgabewerten

Nach Abschluss der Ausführung wird von einer Funktion ein Rückgabewert erzeugt und an die aufrufende Methode zurückgegeben. Ein Rückgabewert kann verwendet werden, um das erzeugte Ergebnis oder einen Statuscode darüber zu teilen, ob eine Funktion erfolgreich ausgeführt wurde oder nicht. Beim Bash-Scripting wird der Rückgabewert dem zugewiesen $? Variable.

Ein Beispiel dafür finden Sie unten –

Beispiel für Funktionen mit Rückgabewerten:

#!/bin/bash myfun(){ return 7 } myfun echo The return value is $?>

Ausgabe von Funktionen mit Rückgabewerten:

The return value is 7>

Unten sehen Sie die Terminal-Shell-Ausgabe nach der Ausführung des Skripts:

Ausgabe von Funktionen mit Rückgabewerten

Lassen Sie uns nun die frühere Summe des Zwei-Zahlen-Skripts ändern.

Geänderter Code:

#!/bin/bash myfun(){ return $((+)) } add_two_num 2 3 echo The sum is $?>

Ausgabe des geänderten Codes:

The sum is 5>

Der obige Code ist nun ein Beispiel für die Verwendung von Parametern und Rückgabewerten in einer Bash-Skriptfunktion.

Unten sehen Sie die Darstellung der Terminal-Shell nach der Ausführung des Skripts:

Ausgabe des geänderten Codes

Variabler Umfang

Der Bereich in einem Programm oder Skript ist ein Bereich, in dem die Variablen vorhanden sind. Wenn eine Variable innerhalb einer Funktion deklariert wird, handelt es sich im Allgemeinen um eine lokale Variable. Wenn sie außerhalb einer Funktion deklariert wird, handelt es sich um eine globale Variable. Im Fall eines Bash-Skripts ist dieses Konzept etwas anders. Hier ist jede Variable, unabhängig davon, ob sie innerhalb einer Funktion oder außerhalb einer Funktion geschrieben wird, standardmäßig eine globale Variable. Wenn wir eine lokale Variable erstellen möchten, müssen wir das Schlüsselwort local verwenden.

Es empfiehlt sich, immer eine lokale Variable innerhalb einer Funktion zu verwenden, um unnötige Verwirrung zu vermeiden.

Ein Beispiel dafür finden Sie unten –

Beispiel für den Variablenbereich:

#!/bin/bash var1='Apple' #global variable myfun(){ local var2='Banana' #local variable var3='Cherry' #global variable echo 'The name of first fruit is $var1' echo 'The name of second fruit is $var2' } myfun #calling function echo 'The name of first fruit is $var1' #trying to access local variable echo 'The name of second fruit is $var2' echo 'The name of third fruit is $var3'>

Ausgabe des Variablenbereichs:

The name of first fruit is Apple The name of second fruit is Banana The name of first fruit is Apple The name of second fruit is The name of third fruit is Cherry>

Hier in diesem obigen Beispiel ist var2 eine lokale Variable. Wenn wir also über die Funktion darauf zugreifen, funktioniert sie einwandfrei, aber wenn wir versuchen, außerhalb der Funktion darauf zuzugreifen, erhalten wir in der Ausgabe ein leeres Ergebnis.

Andererseits fungiert var3 im Gegensatz zu Programmiersprachen auch dann, wenn es innerhalb einer Funktion definiert ist, als globale Variable und kann außerhalb der Funktion aufgerufen werden. Unten sehen Sie die Darstellung der Terminal-Shell nach der Ausführung des Skripts:

Zeichenfolge vergleichen mit
Ausgabe des Variablenbereichs

Überschreibende Befehle

Es ist möglich, dass eine Funktion denselben Namen wie ein Befehl hat. Dies ist hilfreich, wenn wir einen Befehl mit bestimmten Optionen ausführen oder eine angepasste Edition davon haben möchten.

Ein Beispiel dafür finden Sie unten:

Beispiel für überschreibende Befehle:

#!/bin/bash #overriding command echo(){ builtin echo 'The name is : ' } echo 'Satyajit Ghosh'>

Ausgabe übergeordneter Befehle:

The name is : Satyajit Ghosh>

Hier in diesem Beispiel haben wir das überschrieben Echo Befehl. Bevor nun die angegebene Zeichenfolge gedruckt wird, werden einige weitere Wörter an die Zeichenfolge angehängt und dann gedruckt. Unten sehen Sie die Darstellung der Terminal-Shell nach der Ausführung des Skripts:

Ausgabe übergeordneter Befehle