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

Wie übergibt man ein Befehlszeilenargument an ein Shell-Skript?

Ich weiß, dass Shell-Skripte einfach Befehle ausführen, als ob sie an der Eingabeaufforderung ausgeführt würden. Ich möchte Shell-Skripte so ausführen können, als wären sie Funktionen ... Das heißt, einen Eingabewert oder eine Zeichenfolge in das Skript übernehmen. Wie gehe ich dabei vor?

Akzeptierte Antwort:

Der Shell-Befehl und alle Argumente für diesen Befehl werden nummeriert angezeigt Shell-Variablen:$0 hat den String-Wert des Befehls selbst, so etwas wie script , ./script , /home/user/bin/script oder Wasauchimmer. Alle Argumente erscheinen als "$1" , "$2" , "$3" und so weiter. Die Anzahl der Argumente befindet sich in der Shell-Variablen "$#" .

Übliche Wege, damit umzugehen, beinhalten Shell-Befehle getopts und shift . getopts ist dem C getopt() sehr ähnlich Bibliotheksfunktion. shift verschiebt den Wert von $2 zu $1 , $3 bis $2 , und so weiter; $# wird dekrementiert. Der Code sieht sich schließlich den Wert von "$1" an , Dinge mit einem case tun …esac um sich für eine Aktion zu entscheiden und dann eine shift zu machen um $1 zu verschieben zum nächsten Argument. Es muss immer nur $1 untersucht werden , und vielleicht $# .


Linux
  1. Linux – Wie bootet man Puppy Linux Slacko in die Kommandozeile?

  2. Wie übergibt man die Ausgabe eines Befehls als Argument an einen anderen?

  3. 6 Beispiele für Script-Befehlszeilenargumente

  4. So übergeben Sie ein Argument in Expect über die Befehlszeile in einem Shell-Skript

  5. Wie verstecke ich ein als Befehlszeilenargument übergebenes Passwort?

So führen Sie einen Linux-Shell-Befehl / ein Skript im Hintergrund aus

So booten Sie in die Linux-Befehlszeile

So speichern Sie einen Linux-Befehl als Variable im Shell-Skript

Wie analysiert man jede Zeile einer Textdatei als Argument für einen Befehl?

Wie führe ich einen Befehl in einem Shell-Skript aus?

Wie liest man Befehlszeilenargumente in Shell-Skripten?