logo

Bash-Funktionen

In diesem Thema haben wir die Grundlagen von Bash-Funktionen und ihre Funktionsweise beim Bash-Shell-Scripting demonstriert.

Funktionen im Bash-Scripting sind eine großartige Option zur Wiederverwendung von Code. Eine Bash-Funktion kann als eine Reihe von Befehlen definiert werden, die innerhalb eines Bash-Skripts mehrmals aufgerufen werden können. Der Zweck der Funktion in Bash besteht darin, Ihnen dabei zu helfen, Ihre Skripte besser lesbar zu machen und zu vermeiden, dass Sie immer wieder denselben Code schreiben. Es ermöglicht den Entwicklern auch, einen komplizierten und langen Code in kleine Teile zu zerlegen, die bei Bedarf aufgerufen werden können. Funktionen können jederzeit und wiederholt aufgerufen werden, wodurch wir den Code wiederverwenden, optimieren und minimieren können.

Im Folgenden sind einige wichtige Punkte zu Bash-Funktionen aufgeführt:

  • Eine Funktion muss im Shell-Skript deklariert werden, bevor wir sie verwenden können.
  • Argumente können an die Funktionen übergeben und innerhalb der Funktion als , usw. aufgerufen werden.
  • Lokale Variablen können innerhalb der Funktion zugewiesen werden, und der Gültigkeitsbereich solcher Variablen bezieht sich nur auf die jeweilige Funktion.
  • Integrierte Befehle der Bash-Shell können mithilfe von Funktionen überschrieben werden.

Syntax

Die Syntax zum Deklarieren einer Bash-Funktion kann in zwei Formaten definiert werden:

1. Die erste Methode beginnt mit dem Funktionsnamen, gefolgt von Klammern. Dies ist die am meisten bevorzugte und am häufigsten verwendete Methode:

 function_name () { commands } 

Die einzeilige Version kann wie folgt erwähnt werden:

 function_name () { commands; } 

2. Die zweite Methode beginnt mit dem für die Funktion reservierten Wort, gefolgt vom Funktionsnamen:

Wie viele Unzen sind 10 Milliliter?
 function function_name { commands } 

Die einzeilige Version kann wie folgt erwähnt werden:

 function function_name { commands; } 

Im Vergleich zu den meisten Programmiersprachen sind die Bash-Funktionen etwas eingeschränkt. Lassen Sie uns das Konzept anhand einiger Beispiele verstehen:

Beispiel: Methode 1

 #!/bin/bash JTP () { echo 'Welcome to Javatpoint.' } JTP 

Ausgabe

 Welcome to Javatpoint. 

Beispiel: Methode 2

 #!/bin/bash function JTP { echo 'Welcome to Javatpoint.' } JTP 

Ausgabe

 Welcome to Javatpoint. 

Argumente weitergeben

Wie die meisten Programmiersprachen können wir auch in Bash-Funktionen die Argumente übergeben und die Daten verarbeiten. Wir können die Daten auf ähnliche Weise in die Funktion einfügen wie die Übergabe von Befehlszeilenargumenten an ein Bash-Skript.

Wörterbuch c#

Um eine beliebige Anzahl von Argumenten an die Bash-Funktion zu übergeben, müssen wir diese direkt nach dem Namen der Funktion einfügen. Wir müssen Leerzeichen zwischen Funktionsnamen und Argumenten einfügen. Es ist auch eine gute Wahl, die Argumente in doppelte Anführungszeichen zu setzen, um zu verhindern, dass die Argumente mit Leerzeichen falsch geparst werden.

Im Folgenden finden Sie einige wichtige Punkte zur Übergabe von Argumenten an die Bash-Funktionen:

  • Auf die angegebenen Argumente wird als , , ... $n zugegriffen, entsprechend der Position der Argumente nach dem Funktionsnamen.
  • Die Variable

    In diesem Thema haben wir die Grundlagen von Bash-Funktionen und ihre Funktionsweise beim Bash-Shell-Scripting demonstriert.

    Funktionen im Bash-Scripting sind eine großartige Option zur Wiederverwendung von Code. Eine Bash-Funktion kann als eine Reihe von Befehlen definiert werden, die innerhalb eines Bash-Skripts mehrmals aufgerufen werden können. Der Zweck der Funktion in Bash besteht darin, Ihnen dabei zu helfen, Ihre Skripte besser lesbar zu machen und zu vermeiden, dass Sie immer wieder denselben Code schreiben. Es ermöglicht den Entwicklern auch, einen komplizierten und langen Code in kleine Teile zu zerlegen, die bei Bedarf aufgerufen werden können. Funktionen können jederzeit und wiederholt aufgerufen werden, wodurch wir den Code wiederverwenden, optimieren und minimieren können.

    Im Folgenden sind einige wichtige Punkte zu Bash-Funktionen aufgeführt:

    • Eine Funktion muss im Shell-Skript deklariert werden, bevor wir sie verwenden können.
    • Argumente können an die Funktionen übergeben und innerhalb der Funktion als $1, $2 usw. aufgerufen werden.
    • Lokale Variablen können innerhalb der Funktion zugewiesen werden, und der Gültigkeitsbereich solcher Variablen bezieht sich nur auf die jeweilige Funktion.
    • Integrierte Befehle der Bash-Shell können mithilfe von Funktionen überschrieben werden.

    Syntax

    Die Syntax zum Deklarieren einer Bash-Funktion kann in zwei Formaten definiert werden:

    1. Die erste Methode beginnt mit dem Funktionsnamen, gefolgt von Klammern. Dies ist die am meisten bevorzugte und am häufigsten verwendete Methode:

     function_name () { commands } 

    Die einzeilige Version kann wie folgt erwähnt werden:

     function_name () { commands; } 

    2. Die zweite Methode beginnt mit dem für die Funktion reservierten Wort, gefolgt vom Funktionsnamen:

     function function_name { commands } 

    Die einzeilige Version kann wie folgt erwähnt werden:

     function function_name { commands; } 

    Im Vergleich zu den meisten Programmiersprachen sind die Bash-Funktionen etwas eingeschränkt. Lassen Sie uns das Konzept anhand einiger Beispiele verstehen:

    Beispiel: Methode 1

     #!/bin/bash JTP () { echo 'Welcome to Javatpoint.' } JTP 

    Ausgabe

     Welcome to Javatpoint. 

    Beispiel: Methode 2

     #!/bin/bash function JTP { echo 'Welcome to Javatpoint.' } JTP 

    Ausgabe

     Welcome to Javatpoint. 

    Argumente weitergeben

    Wie die meisten Programmiersprachen können wir auch in Bash-Funktionen die Argumente übergeben und die Daten verarbeiten. Wir können die Daten auf ähnliche Weise in die Funktion einfügen wie die Übergabe von Befehlszeilenargumenten an ein Bash-Skript.

    Um eine beliebige Anzahl von Argumenten an die Bash-Funktion zu übergeben, müssen wir diese direkt nach dem Namen der Funktion einfügen. Wir müssen Leerzeichen zwischen Funktionsnamen und Argumenten einfügen. Es ist auch eine gute Wahl, die Argumente in doppelte Anführungszeichen zu setzen, um zu verhindern, dass die Argumente mit Leerzeichen falsch geparst werden.

    Im Folgenden finden Sie einige wichtige Punkte zur Übergabe von Argumenten an die Bash-Funktionen:

    • Auf die angegebenen Argumente wird als $1, $2, $3 ... $n zugegriffen, entsprechend der Position der Argumente nach dem Funktionsnamen.
    • Die Variable $0 bleibt für den Namen der Funktion reserviert.
    • Die Variable $# wird verwendet, um die Anzahl der Positionsargumente/Parameter zu speichern, die der Funktion übergeben werden.
    • Die Variablen $* und $@ werden verwendet, um alle Argumente/Parameter zu speichern, die der Funktion übergeben werden.
      • Wenn $* in doppelten Anführungszeichen verwendet wird (z. B. '$*' ), wird es zu einer einzelnen Zeichenfolge erweitert, die durch ein Leerzeichen getrennt ist. Zum Beispiel „$1 $2 $n usw.“
      • Wenn $@ in doppelten Anführungszeichen verwendet wird (d. h. '$@' ), wird es zu einer separaten Zeichenfolge erweitert. Zum Beispiel „$1“, „$2“, „$n“ usw.
      • Wenn $* und $# nicht in doppelten Anführungszeichen verwendet werden, sind beide gleich.

    Im Folgenden finden Sie den Code, der das Verfahren zur Übergabe von Argumenten an Funktionen und zum Zugriff auf die Argumente innerhalb der Funktion veranschaulicht.

    Bash-Skript

     #!/bin/bash #Script to pass and access arguments function_arguments() { echo $1 echo $2 echo $3 echo $4 echo $5 } #Calling function_arguments function_arguments 'We''welcome''you''on''Javatpoint.' 

    Ausgabe

    Bash-Funktionen

    In diesem Skript haben wir die Werte „We“, „welcome“, „you“, „on“ und „Javatpoint“ hinzugefügt, nachdem wir die function_arguments aufgerufen haben. Diese Werte werden an die übergeben Funktionsargumente als Parameter und in einer lokalen Variablen gespeichert. Im Gegensatz zu anderen Sprachen speichert der Interpreter die übergebenen Werte jedoch in vordefinierten Variablen, die dann entsprechend der Reihenfolge der übergebenen Parameter benannt werden.

    Zum Beispiel,

    'Wir' Das Wort wird in der Variablen gespeichert 1 .
    'Willkommen' Das Wort wird in der Variablen gespeichert 2 .
    'Du' Das Wort wird in der Variablen gespeichert 3 .
    'An' Das Wort wird in der Variablen gespeichert 4 .
    'Javatpoint' Das Wort wird in der Variablen gespeichert 5 .

    Variabler Umfang

    Globale Variablen werden als Variablen definiert, auf die unabhängig vom Gültigkeitsbereich überall im Skript zugegriffen werden kann. Standardmäßig sind alle Variablen als globale Variablen definiert, auch wenn sie innerhalb der Funktion deklariert werden. Wir können Variablen auch als lokale Variable erstellen. Lokale Variablen können innerhalb des Funktionskörpers mit dem Befehl ?local? deklariert werden. Schlüsselwort, wenn sie zum ersten Mal zugewiesen werden. Sie sind nur innerhalb dieser Funktion zugänglich. Wir können in verschiedenen Funktionen lokale Variablen mit demselben Namen erstellen. Um eine lokale Variable hinzuzufügen, können wir die folgende Syntax verwenden:

     local var_name= 

    Um besser zu verstehen, wie der Variablenbereich in Bash Scripting funktioniert, sehen Sie sich das folgende Beispiel an:

    Bash-Skript

     #!/bin/bash v1='A' v2='B' my_var () { local v1='C' v2='D' echo 'Inside Function' echo 'v1 is $v1.' echo 'v2 is $v2.' } echo 'Before Executing the Function' echo 'v1 is $v1.' echo 'v2 is $v2.' my_var echo 'After Executing the Function' echo 'v1 is $v1.' echo 'v2 is $v2.' 

    Ausgabe

    Bash-Funktionen

    Wenn wir laut Ausgabe eine lokale Variable innerhalb des Funktionskörpers mit demselben Namen wie eine vorhandene globale Variable festlegen, hat diese Vorrang vor der globalen Variablen. Globale Variablen können innerhalb der Funktion geändert werden.

    Rückgabewerte

    Die meisten Programmiersprachen haben das Konzept, einen Wert für die Funktionen zurückzugeben. Das bedeutet, dass die Funktion die Daten an den ursprünglichen Aufrufort zurücksenden muss. Im Gegensatz zu Funktionen in „echten“ Programmiersprachen bietet die Bash-Funktion keine Unterstützung für die Rückgabe eines Werts, wenn sie aufgerufen wird. Sie ermöglichen es uns jedoch, einen Rückgabestatus festzulegen, der dem Beenden eines Programms oder Befehls mit einem Exit-Status ähnelt. Wenn eine Bash-Funktion abgeschlossen ist, ist ihr Rückgabewert der Status der zuletzt ausgeführten Anweisung in der Funktion. Für den Erfolgsstatus wird 0 und für den Fehler eine Dezimalzahl ungleich Null im Bereich von 1 bis 255 zurückgegeben.

    Der Rückgabestatus kann mit dem Schlüsselwort „return“ angegeben werden und wird der Variablen $? zugewiesen. Die Return-Anweisung beendet die Funktion und fungiert als Exit-Status der Funktion.

    Zum Beispiel, Betrachten Sie den folgenden Code:

    Bash-Skript

     #!/bin/bash #Setting up a return status for a function print_it () { echo Hello $1 return 5 } print_it User print_it Reader echo The previous function returned a value of $? 

    Ausgabe

    Bash-Funktionen

    Eine weitere bessere Möglichkeit, einen Wert von einer Funktion zurückzugeben, besteht darin, den Wert an zu senden stdout verwenden Echo oder printf Befehle, wie unten gezeigt:

    Bash-Skript

     #!/bin/bash print_it () { local my_greet='Welcome to Javatpoint.' echo '$my_greet' } my_greet='$(print_it)' echo $my_greet 

    Ausgabe

     Welcome to Javatpoint. 

    Überschreibende Befehle

    Wir haben die Möglichkeit, die Bash-Befehle zu überschreiben, indem wir eine Funktion mit demselben Namen wie der Befehl erstellen, den wir überschreiben möchten. Wenn wir beispielsweise den Befehl „echo“ überschreiben möchten, müssen wir eine Funktion mit dem Namen „echo“ erstellen.

    Dieses Konzept des Überschreibens der Bash-Befehle kann in einigen Szenarien hilfreich sein, beispielsweise wenn wir einen Befehl mit bestimmten Optionen verwenden möchten. Auch wenn wir den gesamten Befehl nicht mehrmals im Skript mit Optionen versehen möchten. In solchen Fällen können wir den integrierten Bash-Befehl für den Befehl mit Optionen überschreiben. Lassen Sie uns nun anhand einiger Beispiele das Konzept des Überschreibens der Befehle im Bash-Shell-Scripting verstehen:

    Beispiel

    In diesem Beispiel haben wir den Befehl „echo“ überschrieben und den Zeitstempel in Form des Arguments zum Befehl „echo“ hinzugefügt.

    Bash-Skript

     #!/bin/bash #Script to override command using function echo () { builtin echo -n `date +'[%m-%d %H:%M:%S]'` ': ' builtin echo $1 } echo 'Welcome to Javatpoint.' 

    Ausgabe

    Bash-Funktionen

    Abschluss

    In diesem Thema haben wir die Bash-Funktion demonstriert. Eine Bash-Funktion wird als ein Block wiederverwendbaren Codes betrachtet, der zur Ausführung einer bestimmten Operation entwickelt wurde. Sobald es definiert ist, kann es innerhalb eines Skripts mehrmals aufgerufen werden.


    bleibt für den Namen der Funktion reserviert.
  • Die Variable $# wird verwendet, um die Anzahl der Positionsargumente/Parameter zu speichern, die der Funktion übergeben werden.
  • Die Variablen $* und $@ werden verwendet, um alle Argumente/Parameter zu speichern, die der Funktion übergeben werden.
    • Wenn $* in doppelten Anführungszeichen verwendet wird (z. B. '$*' ), wird es zu einer einzelnen Zeichenfolge erweitert, die durch ein Leerzeichen getrennt ist. Zum Beispiel „ $n usw.“
    • Wenn $@ in doppelten Anführungszeichen verwendet wird (d. h. '$@' ), wird es zu einer separaten Zeichenfolge erweitert. Zum Beispiel „“, „“, „$n“ usw.
    • Wenn $* und $# nicht in doppelten Anführungszeichen verwendet werden, sind beide gleich.

Im Folgenden finden Sie den Code, der das Verfahren zur Übergabe von Argumenten an Funktionen und zum Zugriff auf die Argumente innerhalb der Funktion veranschaulicht.

Bash-Skript

 #!/bin/bash #Script to pass and access arguments function_arguments() { echo  echo  echo  echo  echo  } #Calling function_arguments function_arguments 'We''welcome''you''on''Javatpoint.' 

Ausgabe

Linux-Betriebssystem
Bash-Funktionen

In diesem Skript haben wir die Werte „We“, „welcome“, „you“, „on“ und „Javatpoint“ hinzugefügt, nachdem wir die function_arguments aufgerufen haben. Diese Werte werden an die übergeben Funktionsargumente als Parameter und in einer lokalen Variablen gespeichert. Im Gegensatz zu anderen Sprachen speichert der Interpreter die übergebenen Werte jedoch in vordefinierten Variablen, die dann entsprechend der Reihenfolge der übergebenen Parameter benannt werden.

Zum Beispiel,

'Wir' Das Wort wird in der Variablen gespeichert 1 .
'Willkommen' Das Wort wird in der Variablen gespeichert 2 .
'Du' Das Wort wird in der Variablen gespeichert 3 .
'An' Das Wort wird in der Variablen gespeichert 4 .
'Javatpoint' Das Wort wird in der Variablen gespeichert 5 .

Variabler Umfang

Globale Variablen werden als Variablen definiert, auf die unabhängig vom Gültigkeitsbereich überall im Skript zugegriffen werden kann. Standardmäßig sind alle Variablen als globale Variablen definiert, auch wenn sie innerhalb der Funktion deklariert werden. Wir können Variablen auch als lokale Variable erstellen. Lokale Variablen können innerhalb des Funktionskörpers mit dem Befehl ?local? deklariert werden. Schlüsselwort, wenn sie zum ersten Mal zugewiesen werden. Sie sind nur innerhalb dieser Funktion zugänglich. Wir können in verschiedenen Funktionen lokale Variablen mit demselben Namen erstellen. Um eine lokale Variable hinzuzufügen, können wir die folgende Syntax verwenden:

 local var_name= 

Um besser zu verstehen, wie der Variablenbereich in Bash Scripting funktioniert, sehen Sie sich das folgende Beispiel an:

Bash-Skript

 #!/bin/bash v1='A' v2='B' my_var () { local v1='C' v2='D' echo 'Inside Function' echo 'v1 is $v1.' echo 'v2 is $v2.' } echo 'Before Executing the Function' echo 'v1 is $v1.' echo 'v2 is $v2.' my_var echo 'After Executing the Function' echo 'v1 is $v1.' echo 'v2 is $v2.' 

Ausgabe

Bash-Funktionen

Wenn wir laut Ausgabe eine lokale Variable innerhalb des Funktionskörpers mit demselben Namen wie eine vorhandene globale Variable festlegen, hat diese Vorrang vor der globalen Variablen. Globale Variablen können innerhalb der Funktion geändert werden.

Rückgabewerte

Die meisten Programmiersprachen haben das Konzept, einen Wert für die Funktionen zurückzugeben. Das bedeutet, dass die Funktion die Daten an den ursprünglichen Aufrufort zurücksenden muss. Im Gegensatz zu Funktionen in „echten“ Programmiersprachen bietet die Bash-Funktion keine Unterstützung für die Rückgabe eines Werts, wenn sie aufgerufen wird. Sie ermöglichen es uns jedoch, einen Rückgabestatus festzulegen, der dem Beenden eines Programms oder Befehls mit einem Exit-Status ähnelt. Wenn eine Bash-Funktion abgeschlossen ist, ist ihr Rückgabewert der Status der zuletzt ausgeführten Anweisung in der Funktion. Für den Erfolgsstatus wird 0 und für den Fehler eine Dezimalzahl ungleich Null im Bereich von 1 bis 255 zurückgegeben.

Der Rückgabestatus kann mit dem Schlüsselwort „return“ angegeben werden und wird der Variablen $? zugewiesen. Die Return-Anweisung beendet die Funktion und fungiert als Exit-Status der Funktion.

String-Array-Erstellung in Java

Zum Beispiel, Betrachten Sie den folgenden Code:

Bash-Skript

 #!/bin/bash #Setting up a return status for a function print_it () { echo Hello  return 5 } print_it User print_it Reader echo The previous function returned a value of $? 

Ausgabe

Bash-Funktionen

Eine weitere bessere Möglichkeit, einen Wert von einer Funktion zurückzugeben, besteht darin, den Wert an zu senden stdout verwenden Echo oder printf Befehle, wie unten gezeigt:

Java tun, während

Bash-Skript

 #!/bin/bash print_it () { local my_greet='Welcome to Javatpoint.' echo '$my_greet' } my_greet='$(print_it)' echo $my_greet 

Ausgabe

 Welcome to Javatpoint. 

Überschreibende Befehle

Wir haben die Möglichkeit, die Bash-Befehle zu überschreiben, indem wir eine Funktion mit demselben Namen wie der Befehl erstellen, den wir überschreiben möchten. Wenn wir beispielsweise den Befehl „echo“ überschreiben möchten, müssen wir eine Funktion mit dem Namen „echo“ erstellen.

Dieses Konzept des Überschreibens der Bash-Befehle kann in einigen Szenarien hilfreich sein, beispielsweise wenn wir einen Befehl mit bestimmten Optionen verwenden möchten. Auch wenn wir den gesamten Befehl nicht mehrmals im Skript mit Optionen versehen möchten. In solchen Fällen können wir den integrierten Bash-Befehl für den Befehl mit Optionen überschreiben. Lassen Sie uns nun anhand einiger Beispiele das Konzept des Überschreibens der Befehle im Bash-Shell-Scripting verstehen:

Beispiel

In diesem Beispiel haben wir den Befehl „echo“ überschrieben und den Zeitstempel in Form des Arguments zum Befehl „echo“ hinzugefügt.

Bash-Skript

 #!/bin/bash #Script to override command using function echo () { builtin echo -n `date +'[%m-%d %H:%M:%S]'` ': ' builtin echo  } echo 'Welcome to Javatpoint.' 

Ausgabe

Bash-Funktionen

Abschluss

In diesem Thema haben wir die Bash-Funktion demonstriert. Eine Bash-Funktion wird als ein Block wiederverwendbaren Codes betrachtet, der zur Ausführung einer bestimmten Operation entwickelt wurde. Sobald es definiert ist, kann es innerhalb eines Skripts mehrmals aufgerufen werden.