Übergeben Sie ein benanntes Argument in einem Bash-Skript

Die Befehlszeilenargumentwerte können im Bash-Skript auf zwei Arten übergeben werden. Eine Möglichkeit besteht darin, Positionsargumente wie $1, $2, $3 usw. zu verwenden. Die andere Möglichkeit besteht darin, benannte Argumente zu verwenden. Die Verwendung des Positionsarguments ist für den Zugriff auf die Argumentwerte nicht so nützlich, da nicht klar definiert ist, welches Positionsargument welche Art von Daten enthält. Die sinnvolle Option kann jedoch mit dem benannten Argument verwendet werden, um zu verstehen, welches Argument welchen Datentyp enthält. Die Verwendung der benannten Argumente in Bash wird in diesem Tutorial gezeigt.

Verwendung von Getopts und Getopt

Sowohl getopts als auch getopt werden in Bash verwendet, um die benannten Argumentwerte zu lesen. Es gibt jedoch einen Unterschied zwischen diesen Tools. Getopts wird zum Lesen der kurzen Optionen wie -h, -d usw. verwendet. Die langen Optionen wie –version, –user usw. können jedoch nicht gelesen werden. Getopt wird zum Lesen des Werts der langen Option verwendet. Wenn Sie mehr Details über die Getopts erfahren möchten, können Sie hier nachsehen.

Beispiel 1: Lesen Sie die benannten Argumente mithilfe von Getopts

Erstellen Sie eine Bash-Datei mit dem folgenden Skript, das die beiden benannten Argumente mithilfe von getopts liest, die die kurzen Optionen unterstützen. Die Optionen -i und -r werden verwendet, um die benannten Argumentwerte während der Ausführung des Skripts zu übergeben. Als nächstes wird der Argumentwert, der von der Option -i gelesen wird, mit einem bestimmten Wert überprüft, um die Ausgabe basierend auf dem übereinstimmenden Wert zu drucken.

#Lesen Sie die Argumentwerte basierend auf den Optionen
while getopts „i:r:“ var
Tun
Fall „$var“ in
i) ID=${OPTARG};;
r) GPA=${OPTARG};;
esac
Erledigt

#Drucken Sie die Nachricht basierend auf dem übereinstimmenden ID-Wert, der im Argument übergeben wurde
Wenn [[ „$ID“ == „56“ ]]; Dann
echo „Mir Sabbir hat $GPA erhalten“
elif [[ „$ID“ == „34“ ]]; Dann
echo „Nirob Ahsan hat $GPA erhalten“
anders
echo „ID ist ungültig.“
fi

Das Skript wird in der folgenden Ausgabe zweimal ausgeführt. Das Skript wird bei der ersten Ausführung ohne Argument ausgeführt. Daher wird die Fehlermeldung angezeigt. Das Skript wird in der zweiten Ausführung mit zwei gültigen benannten Argumenten ausgeführt. Die formatierten Werte der benannten Argumentwerte werden in der Ausgabe gedruckt:

Beispiel 2: Lesen Sie die benannten Argumente mit Getopt

Erstellen Sie eine Bash-Datei mit dem folgenden Skript, das die beiden benannten Argumente mit getopt liest, das die langen Optionen unterstützt. Die Optionen –email und –pass werden verwendet, um die benannten Argumentwerte während der Ausführung des Skripts zu übergeben. Die Argumentwerte, die von den benannten Argumenten gelesen werden, werden in zwei Variablen namens $Email und $Password gespeichert. Als nächstes werden die Werte dieser Variablen mit den jeweiligen Werten verglichen und die Ausgabe basierend auf der Ausgabe des Vergleichs gedruckt.

#!/bin/bash

#Legen Sie die Optionen des Befehls getopt fest
format=$(getopt -n „$0“ -l „email:,pass:“ — — „$@“)
Wenn [ $# -lt 3 ]; Dann
echo „Es wurde die falsche Anzahl von Argumenten übergeben.“
Ausfahrt
fi
Auswertungssatz – „$format“

#Lesen Sie die Argumentwerte
während [ $# -gt 0 ]

Tun
Fall „$1“ in
–email) E-Mail=“$2″; Schicht;;
–pass) Passwort=“$2″; Schicht;;
–) Schicht;;
esac
Schicht;
Erledigt

#Vergleichen Sie die Argumentwerte mit dem jeweiligen Wert
Wenn [[ „$Email“ == „[email protected]“ && „$Password“ == „secretpass“ ]]; Dann
echo „Gültiger Benutzer“
anders
echo „Ungültiger Benutzer“
fi

Das Skript wird in der folgenden Ausgabe dreimal ausgeführt. Das Skript wird bei der ersten Ausführung ohne Argument ausgeführt. Daher wird die Fehlermeldung „Falsche Anzahl von Argumenten übergeben“ angezeigt. Das Skript wird in der zweiten Ausführung mit zwei Argumentwerten ausgeführt, aber der Wert des zweiten Arguments stimmte nicht mit dem Passwortwert überein. Daher wird die Meldung „Ungültiger Benutzer“ angezeigt. Das Skript wird in der dritten Ausführung mit zwei gültigen benannten Argumenten ausgeführt und beide Argumentwerte werden mit den Werten abgeglichen, die in der „if“-Bedingung angegeben sind. Daher wird die Meldung „Gültiger Benutzer“ angezeigt.

Beispiel 3: Lesen Sie das benannte Argument ohne Getopts und Getopt

Erstellen Sie eine Bash-Datei mit dem folgenden Skript, das die drei genannten Argumente mithilfe der „while“-Schleife liest. Laut Skript können sowohl kurze als auch lange Optionen verwendet werden, um die benannten Argumente im Skript zu übergeben. Die Optionen -u oder –user, -p oder –pass und -h oder –host werden verwendet, um die drei genannten Argumentwerte während der Ausführung des Skripts zu übergeben. Als nächstes werden die Argumentwerte gelesen und mithilfe der „while“-Schleife und dem „shift“-Befehl in drei Variablen gespeichert.

#!/bin/bash
#Lesen Sie die Argumentwerte
während [[ „$#“ -gt 0 ]]
Tun
Fall $1 in
-u|–user) Benutzer=“$2″; Schicht;;
-p|–pass) Passwort=“$2″; Schicht;;
-h|–host) Host=“$2″; Schicht;;
esac
Schicht
Erledigt
#Drucken Sie die Argumentwerte
printf „Benutzername: $User \nPasswort: $Password \nHostname: $Host\n“

Das Skript wird mit drei gültigen benannten Argumenten in der folgenden Ausgabe ausgeführt. Die Werte der drei Argumente werden also ausgegeben:

Abschluss

In diesem Tutorial werden die verschiedenen Möglichkeiten zur Verwendung der benannten Argumente im Bash-Skript gezeigt, um den Bash-Benutzern zu helfen, die benannten Argumente zu verwenden.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen