GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So definieren und verwenden Sie Funktionen in Linux Shell Script

Funktion ist ein wiederverwendbarer Codeblock. Oft fügen wir wiederholten Code in eine Funktion ein und rufen diese Funktion von verschiedenen Stellen aus auf. Bibliothek ist eine Sammlung von Funktionen. Wir können häufig verwendete Funktionen in einer Bibliothek definieren und andere Skripte können sie verwenden, ohne Code zu duplizieren.

In diesem Artikel werden wir mehr über Funktionen und Rezepte diskutieren. Zu Demonstrationszwecken verwende ich Bourne Again SHell (Bash) auf einem Ubuntu-Rechner.

Aufruffunktion

In der Shell ist das Aufrufen der Funktion genau dasselbe wie das Aufrufen eines anderen Befehls. Wenn Ihr Funktionsname beispielsweise my_func ist, kann er wie folgt ausgeführt werden:

$ my_func

Wenn eine Funktion Argumente akzeptiert, können diese wie folgt von der Befehlszeile bereitgestellt werden:

$ my_func arg1 arg2 arg3

Funktion definieren

Wir können die folgende Syntax verwenden, um die Funktion zu definieren:

 function function_name {
            Body of function
 }

Der Funktionskörper kann jeden gültigen Befehl, Schleifenbeschränkung, andere Funktion oder Skript enthalten. Lassen Sie uns nun eine einfache Funktion erstellen, die eine Nachricht auf dem Bildschirm anzeigt.

 function print_msg {
       echo "Hello, World"
 }

Lassen Sie uns nun diese Funktion ausführen:

 $ print_msg
 Hello, World

Wie erwartet zeigt diese Funktion eine Nachricht auf dem Bildschirm an.

Im obigen Beispiel haben wir die Funktion direkt auf dem Terminal erstellt. Wir können diese Funktion auch in einer Datei speichern. Das folgende Beispiel demonstriert dies.

 #! /bin/bash
 function print_msg {
       echo "Hello, World"
 }
 print_msg

Wir haben diese Funktion in function.sh definiert Datei. Lassen Sie uns nun dieses Skript ausführen:

 $ chmod +x function.sh
 $ ./function.sh
 Hello, World

Wie Sie sehen, ist die obige Ausgabe genau identisch mit der vorherigen.

Mehr über Funktionen

Im vorherigen Abschnitt haben wir sehr grundlegende Funktionen definiert. Während der Softwareentwicklung benötigen wir jedoch fortgeschrittenere Funktionen, die verschiedene Parameter akzeptieren und Werte zurückgeben können. In diesem Abschnitt werden wir solche Funktionen besprechen.

Argumente an Funktion übergeben

Wir können Argumente bereitstellen, um wie andere Befehle zu funktionieren. Wir können auf diese Argumente von der Funktion aus mit dem Dollar-Symbol ($) zugreifen. Beispielsweise steht $1 für das erste Argument, $2 für das zweite Argument und so weiter.

Lassen Sie uns die obige Funktion ändern, um die Nachricht als Argument zu akzeptieren. Unsere modifizierte Funktion sieht so aus:

 function print_msg {
       echo "Hello $1"
 }

In der obigen Funktion greifen wir mit $1 auf das erste Argument zu. Lassen Sie uns diese Funktion ausführen:

 $ print_msg "LinuxTechi"

Wenn Sie diese Funktion ausführen, wird die folgende Ausgabe generiert:

 Hello LinuxTechi

Rückgabewert von Funktion

Wie andere Programmiersprachen bietet Bash eine Rückgabeanweisung, mit der wir dem Aufrufer einen Wert zurückgeben können. Lassen Sie uns dies anhand eines Beispiels verstehen:

function func_return_value {
      return 10
 }

Die obige Funktion gibt den Wert 10 an ihren Aufrufer zurück. Lassen Sie uns diese Funktion ausführen:

 $ func_return_value
 $ echo "Value returned by function is: $?"

Wenn Sie die obige Funktion ausführen, wird die folgende Ausgabe generiert:

 Value returned by function is: 10

HINWEIS: In bash müssen wir $? um den Rückgabewert der Funktion zu erfassen

Funktionsrezepte

Bisher haben wir eine ziemlich gute Vorstellung von Bash-Funktionen bekommen. Lassen Sie uns nun einige nützliche Bash-Funktionen erstellen, die uns das Leben erleichtern können.

Logger

Lassen Sie uns eine Logger-Funktion erstellen, die Datum und Uhrzeit zusammen mit der Log-Nachricht druckt.

 function log_msg {
        echo "[`date '+ %F %T'` ]: [email protected]"
 }

Lassen Sie uns diese Funktion ausführen:

 $ log_msg "This is sample log message"

Wenn Sie diese Funktion ausführen, wird die folgende Ausgabe generiert:

 [ 2018-08-16 19:56:34 ]: This is sample log message

Systeminformationen anzeigen

Lassen Sie uns eine Funktion erstellen, um Informationen über das GNU/Linux-System anzuzeigen

 function system_info {
       echo "### OS information ###"
       lsb_release -a

       echo
       echo "### Processor information ###"
       processor=`grep -wc "processor" /proc/cpuinfo`
       model=`grep -w "model name" /proc/cpuinfo  | awk -F: '{print $2}'`
       echo "Processor = $processor"
       echo "Model     = $model"

       echo
       echo "### Memory information ###"
       total=`grep -w "MemTotal" /proc/meminfo | awk '{print $2}'`
       free=`grep -w "MemFree" /proc/meminfo | awk '{print $2}'`
       echo "Total memory: $total kB"
       echo "Free memory : $free kB"
 }

Wenn Sie die obige Funktion ausführen, wird die folgende Ausgabe generiert:

### OS information ###
No LSB modules are available.
Distributor ID:           Ubuntu
Description:   Ubuntu 18.04.1 LTS
Release:         18.04
Codename:    bionic

### Processor information ###
Processor = 1
Model     =  Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz

### Memory information ###
Total memory: 4015648 kB
Free memory : 2915428 kB

Datei oder Verzeichnis im aktuellen Verzeichnis suchen

Die folgende Funktion durchsucht Dateien oder Verzeichnisse im aktuellen Verzeichnis:

 function search {
      find . -name $1
 }

Lassen Sie uns das Verzeichnis dir4 mit dem folgenden Befehl durchsuchen:

 $ search dir4

Wenn Sie den obigen Befehl ausführen, wird die folgende Ausgabe generiert:

 ./dir1/dir2/dir3/dir4

Digitaluhr

Die folgende Funktion erstellt eine einfache Digitaluhr auf dem Terminal

 function digital_clock {
            clear
            while [ 1 ]
            do
                  date +'%T'
                  sleep 1
                  clear
            done
 }

Bibliothek erstellen

Bibliothek ist eine Sammlung von Funktionen. Um eine Bibliothek zu erstellen – definieren Sie Funktionen in einer Datei und importieren Sie diese Datei in die aktuelle Umgebung.

Nehmen wir an, wir haben alle Funktionen in der Datei utils.sh definiert und verwenden dann den folgenden Befehl, um Funktionen in die aktuelle Umgebung zu importieren:

$ source utils.sh

Danach können Sie jede Funktion aus der Bibliothek wie jeden anderen Bash-Befehl ausführen.

Schlussfolgerung

In diesem Artikel haben wir einige nützliche Rezepte besprochen, die Ihre Produktivität verbessern werden. Ich hoffe, dieser Artikel inspiriert Sie dazu, Ihre eigenen Rezepte zu kreieren.


Linux
  1. So verwenden Sie ein verschlüsseltes Passwort in einem Linux-Bash-Shell-Skript

  2. So vergleichen Sie Zahlen und Zeichenfolgen im Linux-Shell-Skript

  3. So installieren und verwenden Sie Flatpak unter Linux

  4. So installieren und verwenden Sie Traceroute unter Linux

  5. So verwenden Sie Befehlszeilen-Shell-Funktionen in Linux

So installieren und verwenden Sie SSHFS unter Linux

So installieren und verwenden Sie PuTTY unter Linux

So installieren und verwenden Sie phpMyAdmin unter Linux

So installieren und verwenden Sie die ZSH-Shell unter Linux

So installieren und verwenden Sie den fd-Befehl unter Linux

So installieren und verwenden Sie Nu Shell unter Linux