Wie behandelt man Befehlszeilenargumente in Bash?

Wie Behandelt Man Befehlszeilenargumente In Bash



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

Sie können diese Argumente unterschiedlich konfigurieren, um die Ein- und Ausgabe zu beeinflussen. Aus diesem Grund ist der Umgang mit Befehlszeilenargumenten in Bash unerlässlich, aber viele neue Benutzer müssen lernen, wie das geht. In diesem Handbuch werden wir also verschiedene Möglichkeiten zum Umgang mit Befehlszeilenargumenten in Bash erläutern.







Wie behandelt man Befehlszeilenargumente in Bash?

Es gibt verschiedene Möglichkeiten, Befehlszeilenargumente in Bash zu handhaben, also werfen wir einen Blick darauf, um kurze Informationen zu erhalten:



Die getopt-Funktion



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





  • Kurze Argumente: Dies sind die Einzelzeichen-Argumente gefolgt von einem Bindestrich. Beispielsweise sind -a, -l, -h usw. einige Beispiele für einzelne Argumente.

  • Lange Argumente: Dies sind die Argumente mit mehreren Zeichen, gefolgt von einem doppelten Bindestrich. Es gibt verschiedene Beispiele für lange Argumente wie –all, –list, –help usw.

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



!/ Behälter / bash

während Getopte 'A B C D:' Einzelheiten; tun

Fall ' $details ' in

EIN )

Echo 'Bürgername ist $OPTARG ' ;;

B )

Echo „Bürgerausweis ist $OPTARG ' ;;

C )

Echo „Geburtsort ist $OPTARG ' ;;

D )

Echo „Beruf ist $OPTARG ' ;;

* )

Ausfahrt 1 ;;

esac

erledigt

Wechsel ' $(($OPTING -1) )'



wenn [ ! -Mit $1 ] ; dann

Echo 'Familienstand $1'

anders

Echo 'Keine Einträge'

Ausfahrt 1

sein



wenn [ ! -Mit $2 ] ; dann

Echo 'Familienmitglieder $2'

sein

Lassen Sie uns nun das Skript mit den erforderlichen Argumenten in der Eingabe ausführen:

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 erhalten.

Flags verwenden

Flags sind nichts anderes als einzelne Zeichen, denen Bindestriche (-) vorangestellt sind. Wenn wir die Argumente mit der Funktion getopt übergeben, verwenden wir Flags. -a, -b, -c sind einige Beispiele für Flags. Beispielsweise erfordert ein Skript den Namen, die ID, den Ort, das Alter und den Beruf eines Bürgers. Daher haben wir die Flags j, k, l, m, n verwendet, um den Namen, die ID, den Ort, das Alter und den Beruf des Bürgers gleichzeitig zu definieren:

#!/bin/bash

Während Getopte j:k:l:m:n:flag_info

tun

Fall ' ${flag_info} ' in
< ol >
< das > j ) Bürgername = ${OPTARG} ;; das >
< das > k ) Personalausweis = ${OPTARG} ;; das >
< das > l ) Platz = ${OPTARG} ;; das >
< das > m ) das Alter = ${OPTARG} ;; das >
< das > n ) Besetzung = ${OPTARG} ;; das >
ol >
esac

erledigt

Echo 'Hier sind die eingegebenen Daten:'

Echo 'Bürgername: $Bürgername ' ;

Echo 'Personalausweis: $BürgerID ' ;

Echo 'Ort: $Ort ' ;

Echo 'Das Alter: $Alter ' ;

Echo 'Beruf: $Beruf ' ;

Das Skript liefert im Terminal folgendes Ergebnis:

. /< Skript > .Sch -j Danni -k 476 -l Toronto -m 25 -n Autor

Verwenden [E-Mail-geschützt] Mit Schleifen

Das ' [E-Mail-geschützt] ” Variable ist nichts anderes als das Array aller Eingabeargumente. Wir können eine beliebige Anzahl von Eingaben mit dem „ [E-Mail-geschützt] ” variabel. Sie können diese Variable als Schleife verwenden, um die Argumente zu durchlaufen. Das ' [E-Mail-geschützt] ” Variable ist dann praktisch; Sie kennen die Eingabegröße nicht und können die Positionsargumente nicht verwenden. Daher können Sie die „ [E-Mail-geschützt] “, anstatt die getopt-Funktion immer wieder neu zu definieren. Hier ist ein Beispiel für die Verwendung von Schleifen und [E-Mail-geschützt] zusammen in einem Skript:

#!/bin/bash

Auf eins = ( „$ @ )



wenn [ $# -gt 1 ]

dann



hinzufügen =$ ( ( ${num[0]} + ${num[1]} ) )

Echo 'Addition aller Zahlen ist: $hinzufügen '



Subtraktion =$ ( ( ${num[0]} - ${num[1]} - ${num[2]} ) )

Echo „Die Subtraktion der Zahlen ist: $Subtraktion '



multiplizieren =$ ( ( ${num[0]} * ${num[1]} * ${num[2]} ) )

Echo „Die Multiplikation der Zahlen ist: $multiplizieren '



Abteilung1 =$ ( ( ${num[0]} / ${num[1]} ) )

Echo „Teilung der ${num[0]} und ${num[1]} ist: $abteilung1 '



Division2 =$ ( ( ${num[1]} / ${num[2]} ) )

Echo 'Abteilung von ${num[1]} und ${num[2]} ist: $abteilung2 '



Abteilung3 =$ ( ( ${num[0]} / ${num[2]} ) )

Echo 'Abteilung von ${num[0]} und ${num[2]} ist: $abteilung2 '



sein

Das obige Skript führt basierend auf den Befehlszeilenargumenten verschiedene arithmetische Berechnungen durch. Als Eingabe haben wir beispielsweise 50, 35 und 15 eingegeben:

Verwenden von Positionsparametern

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

#!/bin/bash

Echo 'Hier sind die eingegebenen Daten'

Echo 'Name $1'

Echo 'Stadt $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 zur Verarbeitung von Befehlszeilenargumenten in Bash wissen müssen. Wir haben verschiedene Ansätze erklärt, die Sie mit den entsprechenden Beispielen ausprobieren können. Es gibt verschiedene Befehle, wenn Sie dem Skript Argumente hinzufügen möchten. Besuchen Sie also unbedingt Linuxhint, um mehr darüber zu erfahren.