Wie übergeben Sie ein benanntes Argument in einem Shell -Skript??

Wie übergeben Sie ein benanntes Argument in einem Shell -Skript??
Mit den Shell-Skripten unter Linux können Sie Programme mit hart codierten Werten und Programmen schreiben, die zur Laufzeit Benutzereingaben aufnehmen können. Diese Benutzereingaben werden als Parameter oder Argumente bezeichnet. Wir alle sind im Allgemeinen vertraut damit, normale Argumente an die Shell -Skripte weiterzugeben. Manchmal haben Sie jedoch manchmal das Bedürfnis, „benannte Argumente“ an Ihre Shell -Skripte weiterzuleiten. In diesem Artikel führen Sie mehr darüber, was genau so genannt werden. Danach werden wir ein umfassendes Beispiel dafür teilen, die benannten Argumente an ein Shell -Skript in Ubuntu 20 weiterzugeben.04.

Benannte Argumente in Shell -Skripten in Ubuntu 20.04

Inzwischen verstehen wir klar, dass wir solche Shell -Skripte leicht in Ubuntu 20 schreiben können.04, die in der Lage sind, Argumente als Eingabe vom Benutzer zu erhalten, während diese Skripte aus dem Terminal ausgeführt werden. Eine andere Art von Argumenten, die als „benannte Argumente“ bezeichnet werden, wird jedoch auch in den Shell -Skripten häufig verwendet. Ein benanntes Argument ist das, das durch ein "Namenswert" -Paar symbolisiert wird. Dieses „Namenswert“ -Paar wird im Shell-Skript definiert, und das entsprechende Argument wird auf die gleiche Weise übergeben, während Sie das Skript ausführen, während Sie die normalen Argumente übergeben.

Was ist dann die Bedeutung der Verwendung der benannten Argumente in Shell -Skripten? Manchmal definieren Sie die Argumente in Ihren Shell -Skripten, aber während Sie diese Skripte ausführen, müssen Sie möglicherweise nicht unbedingt alle diese Argumente vorlegen. Mit den benannten Argumenten können Sie die Werte von so vielen dieser Argumente überspringen, wie Sie möchten, während Sie Ihr Skript ausführen. In diesem Fall hätte Ihr System eine Fehlermeldung gemacht, wenn Sie die normalen Argumente verwendet hätten, und hätte es Ihnen nicht ermöglicht, mit der Ausführung Ihres Skripts fortzufahren, wenn Sie vordefinierte Argumente in Ihrem Skript übersprungen hätten.

Darüber hinaus können Sie manchmal auch die Reihenfolge der Übergabe der Argumente ändern, während Sie ein Shell -Skript ausführen.e., Sie übergeben die Argumente in zufälliger Reihenfolge anstelle der, die befolgt wird, während die Variablen in Ihrem Shell -Skript deklariert werden. Die benannten Argumente lassen Sie dies leicht zu lassen, während andererseits die normalen Argumente in dieser Situation verwendet hätten, dann wäre eine Fehlermeldung erzeugt worden, weil nicht die richtige Reihenfolge der Argumente befolgt worden wäre. Daher können Sie sagen, dass die benannten Argumente den Benutzern mehr Flexibilität bieten und gleichzeitig Eingaben bereitstellen, anstatt sie einzuschränken.

Wenn Sie nun erkennen, wie wichtig es ist, die benannten Argumente in Shell -Skripten zu verwenden.04 System.

Beispiel für die Weitergabe benannter Argumente an ein Shell -Skript in Ubuntu 20.04

Für die Weitergabe benannter Argumente an ein Shell -Skript in Ubuntu 20 übergeben.04, wir haben ein Shell -Skript entworfen, das im Bild unten gezeigt wird. In diesem Abschnitt werden wir dieses Shell -Skript mit unterschiedlichen Argumenten oder Eingabewerten ausführen.

In diesem Shell-Skript haben wir die integrierte "getopts" -Funktion in der Shell in einer Weile-Schleife verwendet. Diese Funktion nimmt im Grunde genommen benannte Parameter als Eingabe vom Benutzer an. Dann haben wir drei verschiedene Fälle definiert, ich.e., "N, A und G" entspricht unseren Variablen "Name, Alter und Geschlecht". Diese Fälle werden gegen die Variable „Flag“ definiert, für die unsere Fall-ESAC-Anweisung ausgeführt wird. Die Fall-ESAC-Anweisung in der Schale ist im Grunde genommen ein Äquivalent der Switch-Anweisung in C. Dann haben wir im Fall-ESAC-Block alle drei Fälle aufgeführt, die zuvor deklariert wurden, ich.e., n, a und g. Gegen jeden Fall haben wir eine Variable deklariert, die dem vom Benutzer bereitgestellten Argument als Eingabe entspricht, während wir das Skript ausführen. Jedes vom Benutzer bereitgestellte Argument wird der relevanten Variablen jedes Mal zugewiesen, wenn dieses Skript ausgeführt wird. Dann haben wir endlich drei „Echo“ -Fandte, die die Werte des Variablennamens, des Alters und des Geschlechts drucken müssen.

Nach dem Entwerfen dieses Skripts werden wir es zunächst mit normalerweise benannten Argumenten in der richtigen Reihenfolge wie folgt ausführen:

$ bash benannt.sh -n aqsa -a 27 -g weiblich

Hier, genannt.SH repräsentiert den Namen unseres Shell -Skripts. Darüber hinaus können Sie aus diesem Befehl sehen, dass wir die Flaggen zuerst aufgeführt haben, gefolgt von ihren jeweiligen Argumenten, die übergeben werden sollen. Sie können auch deutlich feststellen, dass wir diese Argumente in der genauen Reihenfolge übergeben haben, wie sie in unserem Shell -Skript definiert wurden.

Wenn dieses Shell -Skript ausgeführt wird, können Sie die Werte, die allen Ihren benannten Parametern auf dem Terminal zugeordnet sind, sehen, wie im Bild unten gezeigt:

Sobald wir dieses Skript im normalen Fluss ausgeführt haben, können wir ein kleines Experiment ausprobieren, indem wir dieses Shell -Skript mit denselben Eingabetwerten ausführen, jedoch in einer etwas anderen Reihenfolge, wie im folgenden Befehl gezeigt:

$ bash benannt.sh -n aqsa -g weiblich -a 27

In diesem Befehl können Sie sehen, dass wir die Reihenfolge des Geschlechts- und Altersargumente von derjenigen geändert haben, die zunächst im Shell -Skript definiert wurde. Jetzt werden wir versuchen herauszufinden, ob diese Werte unseren benannten Argumenten korrekt zugeordnet sind oder nicht.

Wenn dieser Befehl ausgeführt wird, können Sie aus seiner Ausgabe erkennen, dass die Argumente unabhängig von der Reihenfolge, in der die Argumente während der Ausführung des Shell -Skripts übergeben werden, den richtigen Variablen, wie im folgenden Bild gezeigt, weiterhin zugewiesen werden:

In einigen Situationen möchte ein Benutzer sein Alter möglicherweise nicht preisgeben. In dieser Situation wird er/sie dieses Shell -Skript auf folgende Weise ausführen:

$ bash benannt.sh -n aqsa -g weiblich

In der Ausgabe dieses Shell -Skripts können Sie deutlich erkennen, dass unser System keine Fehlermeldungen generiert hat, wenn es mit den oben gezeigten Argumenten ausgeführt wird. Vielmehr wurde unser Skript reibungslos mit den bereitgestellten Parametern ausgeführt, während die Altersvariable leer bleibt.

Auf die gleiche Weise können Sie auch versuchen, die Geschlechtsvariable zu überspringen, während Sie nur den Wert für die Namensvariable in der unten gezeigten Weise bereitstellen:

$ bash benannt.sh -n aqsa

Die entsprechende Ausgabe für diesen Befehl wird im folgenden Bild angezeigt:

Schließlich werden wir versuchen, dieses Skript auszuführen, ohne wie folgt Argumente vorzulegen:

$ bash benannt.Sch

Auch hier können Sie aus der folgenden Ausgabe erkennen, dass keine Fehlermeldung generiert wird. Vielmehr hat unser Skript auch ohne angegebene Argumente erfolgreich ausgeführt.

Abschluss

Aus dem detaillierten Beispiel, das in diesem Tutorial diskutiert wurde, können wir zu dem Schluss kommen. Auch wenn Sie Ihrem Skript keine Argumente vorlegen, kann es trotzdem ohne Fehler ausgeführt werden. Das einzige, was Sie bei der Übergabe der genannten Argumente vorsichtig sein müssen, ist jedoch das richtige Flag, gefolgt von seinem entsprechenden Wert beim Ausführen Ihres Shell -Skripts.