So behandeln Sie Befehlszeilenargumente in Bash?

So behandeln Sie Befehlszeilenargumente in Bash?

In Linux verwenden wir Befehlszeilenargumente als Eingabe für das Bash-Skript. Bash kann diese Befehlszeilenargumente nacheinander annehmen und als Option analysieren. Mit diesen Argumenten können Sie die Aktionen und die Ausgabe des Skripts dynamisch beeinflussen.

Sie können diese Argumente anders konfigurieren, um die Eingabe und Ausgabe zu beeinflussen. Deshalb ist es unerlässlich, aber viele neue Benutzer zu lernen, wie es geht. In diesem Leitfaden erläutern wir verschiedene Möglichkeiten, um Befehlszeilenargumente in Bash zu verarbeiten.

So behandeln Sie Befehlszeilenargumente in Bash?

Es gibt verschiedene Möglichkeiten, die Befehlszeilen -Argumente in Bash zu behandeln. Schauen wir uns sie an, um kurze Informationen zu erhalten:

Die GetOpt -Funktion

Die GETOPT -Funktion ist praktisch, da sie die Optionen und die Syntax zum Definieren und Analysieren von Argumenten in Bash bietet. Es handelt sich um eine integrierte Funktion von Linux, die Sie beim Erstellen einer Datenbankdatei oder des Berichts in einem bestimmten Format basierend auf den Argumenten verwenden können. Die GetOPT-Funktion hilft, die kurzen Befehlszeilenargumente zu analysieren, da es zwei Arten von Argumenten gibt:

  • Kurze Argumente: Dies sind die einkörnigen Argumente, gefolgt von einem Bindestrich. Zum Beispiel -a, -l, -h usw. -A, -l, -h usw., sind einige Beispiele für einzelne Argumente.
  • Lange Argumente: Dies sind die Multi-Charakter-Argumente, gefolgt von einem doppelten Hyphen. Es gibt verschiedene Beispiele für lange Argumente wie -all, -list, -help usw.

Nehmen wir ein Beispiel, in dem wir die Befehlszeilenargumente mit dem GetOPT -Dienstprogramm behandeln werden. Wir haben ein Bash -Skript mit dem Namen „getopt.sh ”, das die folgenden Informationen enthält:

!/Bin/Bash
Während GetOpts 'A: B: C: D:' Details; Tun
Fall "$ Details" in
A)
Echo "Bürgername ist $ optarg" ;;
B)
Echo "Citizen ID ist $ optarg" ;;
C)
Echo "Geburtsort ist $ optarg" ;;
D)
Echo "Beruf ist $ optarg" ;;
*)
Ausgang 1 ;;
ESAC
Erledigt
verschieben "$ (($ optind -1))"
Wenn [ ! -Z $ 1]; Dann
Echo "Familienstand $ 1"
anders
echo "keine Einträge"
Ausgang 1
fi
Wenn [ ! -Z $ 2]; Dann
echo "Familienmitglieder $ 2"
fi

Führen Sie nun das Skript mit den erforderlichen Argumenten in der Eingabe aus:

Wie Sie im obigen Bild sehen können, führen wir das Skript nur mit GETOPT -Funktionen aus und fügen dann normale Argumente hinzu, um das vollständige Ergebnis zu erzielen.

Flaggen verwenden

Flags sind nichts anderes als einzelne Zeichen, denen Bindestriche (-) vorangegangen sind. Wenn wir die Argumente mit der GetOPT -Funktion übergeben, verwenden wir Flags. -a, -b, -c sind einige Beispiele für Flaggen. Zum Beispiel erfordert ein Drehbuch den Namen, der Ausweis, den Ort, das Alter und die Besatzung eines Bürgers. Daher verwendeten wir Flaggen J, K, L, M, N, um den Namen des Bürgers gleichzeitig zu definieren:

#!/Bin/Bash
Während GetOpts J: K: L: M: N: Flag_info
Tun
Fall "$ flag_info" in

  1. j) CitiNenname = $ optarg ;;

  2. k) citizenid = $ optarg ;;

  3. l) place = $ optarg ;;

  4. m) Alter = $ optarg ;;

  5. n) occupation = $ optarg ;;


ESAC
Erledigt
Echo "Hier sind die eingegebenen Details:"
Echo "Bürgername: $ citiNenname";
Echo "Citizen ID: $ citizenid";
Echo "Place: $ Place";
Echo "Alter: $ Age";
Echo "Beruf: $ Beruf";

Das Skript liefert das folgende Ergebnis in das Terminal:

.//

$@ Mit Schleifen verwenden

Die Variable "$@" ist nichts anderes als das Array aller Eingabemargumente. Wir können eine beliebige Anzahl von Eingängen mit der Variablen "$@" übergeben. Sie können diese Variable als Schleife verwenden, um durch die Argumente zu iterieren. Die Variable "$@" ist dann nützlich; Sie kennen die Eingangsgröße nicht und können die Positionsargumente nicht einnehmen. Daher können Sie die "$@" verwenden, anstatt die GetOpt -Funktion immer wieder zu definieren. Hier ist ein Beispiel für die Verwendung von Loops und $@ zusammen in einem Skript:

#!/Bin/Bash
Num = ("$@")
Wenn [$# -GT 1]
Dann
add = $ (($ num [0]+$ num [1]))
echo "Addition aller Zahlen ist: $ add"
subtraction = $ (($ num [0]-$ num [1]-$ num [2]))
Echo "Subtraktion der Zahlen ist: $ subtraction"
multiply = $ (($ num [0]*$ num [1]*$ num [2]))
echo "Multiplikation der Zahlen ist: $ multiply"
Division1 = $ (($ num [0]/$ num [1]))
Echo "Teilung der $ num [0] und $ num [1] ist: $ Division1"
Division2 = $ (($ num [1]/$ num [2]))
Echo "Abteilung von $ num [1] und $ num [2] ist: $ Division2"
Division3 = $ (($ num [0]/$ num [2]))
Echo "Division von $ num [0] und $ num [2] ist: $ Division2"
fi

Das obige Skript führt unterschiedliche arithmetische Berechnungen durch, basierend auf den Befehlszeilenargumenten. Zum Beispiel haben wir 50, 35 und 15 als Eingabe eingegeben:

Verwenden von Positionsparametern

Sie können auf die Positionsparameter zugreifen, wenn sie zuerst $ 1, dann $ 2 usw. zugreifen. Lassen Sie uns beispielsweise ein Skript erstellen, das einen Namen als erstes Argument und dann als Stadt als zweites liest. Wenn Sie jedoch zuerst die Stadt und dann den Namen bestehen, betrachtet er den Namen als Stadt und umgekehrt. Lassen Sie uns einen tieferen Eintauchen in das folgende Skript eintauchen, um dieses Konzept zu verstehen:

#!/Bin/Bash
echo "Hier sind die eingegebenen Details"
Echo "Name $ 1"
Echo "City $ 2"

Sie müssen den Namen und die Stadt zum Zeitpunkt der Ausführung des Skripts im Terminal hinzufügen:

Einpacken

Dies ist alles, was Sie über die Methoden wissen müssen, um Befehlszeilenargumente in Bash zu verarbeiten. Wir haben verschiedene Ansätze erklärt, die Sie mit den entsprechenden Beispielen versuchen können. Es gibt verschiedene Befehle, wenn Sie Argumente in das Skript hinzufügen möchten. Stellen Sie also sicher, dass Sie LinuxHint besuchen, um mehr darüber zu erfahren.