Bash getopts: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Die Seite wurde neu angelegt: „<syntaxhighlight> #!/bin/bash function examine() { FILE=$1 shift echo "Rights on $FILE" for k in $* do case $k in u) echo USER : $(ls -l $FILE | cut -c 1-3) ;…“) |
|||
| (2 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
| − | <syntaxhighlight> | + | =Grundlegendes= |
| + | *getopts ist ein Befehl in der Bash-Shell, der beim Parsen von Kommandozeilenoptionen und -argumenten hilft. | ||
| + | *Es ermöglicht die einfache Handhabung von Optionen und Argumenten, die an ein Bash-Skript übergeben werden. | ||
| + | *Die grundlegende Syntax von getopts lautet: | ||
| + | <syntaxhighlight lang=bash> | ||
| + | while getopts "optionen" option; do | ||
| + | case $option in | ||
| + | <Option1>) | ||
| + | # Code für Option1 | ||
| + | ;; | ||
| + | <Option2>) | ||
| + | # Code für Option2 | ||
| + | ;; | ||
| + | # Weitere Optionen | ||
| + | *) | ||
| + | # Code für unbekannte Optionen | ||
| + | ;; | ||
| + | esac | ||
| + | done | ||
| + | </syntaxhighlight> | ||
| + | =Hier sind die Schritte, die bei der Verwendung von getopts in einem Bash-Skript ablaufen= | ||
| + | *getopts wird in einer while-Schleife verwendet, um alle übergebenen Optionen zu verarbeiten. | ||
| + | *Die Optionen werden als Zeichenkette in doppelten Anführungszeichen an getopts übergeben. | ||
| + | *Innerhalb der Schleife wird der aktuelle Optionenbuchstabe in der Variablen $option gespeichert. | ||
| + | *Ein case-Statement wird verwendet, um den aktuellen Optionsbuchstaben zu überprüfen und den entsprechenden Code auszuführen. | ||
| + | *Du kannst für jeden Optionsbuchstaben einen separaten Codeblock angeben und verschiedene Aktionen ausführen, abhängig von der ausgewählten Option. | ||
| + | *Wenn eine Option erkannt und verarbeitet wurde, wird der entsprechende Codeblock ausgeführt. | ||
| + | *Wenn der Optionsbuchstabe nicht erkannt wird, kannst du einen Codeblock für unbekannte Optionen angeben, der entsprechende Fehlermeldungen ausgibt oder andere Aktionen durchführt. | ||
| + | *Die Schleife wird so lange ausgeführt, bis alle übergebenen Optionen verarbeitet wurden. | ||
| + | *Sobald alle Optionen verarbeitet sind, wird die Schleife beendet, und das Programm kann mit dem restlichen Code fortfahren. | ||
| + | *getopts erleichtert das Parsen und Verarbeiten von Kommandozeilenoptionen in Bash-Skripten erheblich. | ||
| + | *Es sorgt dafür, dass Optionen einheitlich behandelt werden und ermöglicht die Implementierung von spezifischen Aktionen für jede Option. | ||
| + | *Es bietet auch die Möglichkeit, Standardwerte für Optionen festzulegen und mit Argumenten zu interagieren, die den Optionen folgen. | ||
| + | =Ein Beispiel= | ||
| + | <syntaxhighlight lang=bash> | ||
#!/bin/bash | #!/bin/bash | ||
function examine() | function examine() | ||
Aktuelle Version vom 6. Juni 2023, 15:36 Uhr
Grundlegendes
- getopts ist ein Befehl in der Bash-Shell, der beim Parsen von Kommandozeilenoptionen und -argumenten hilft.
- Es ermöglicht die einfache Handhabung von Optionen und Argumenten, die an ein Bash-Skript übergeben werden.
- Die grundlegende Syntax von getopts lautet:
while getopts "optionen" option; do
case $option in
<Option1>)
# Code für Option1
;;
<Option2>)
# Code für Option2
;;
# Weitere Optionen
*)
# Code für unbekannte Optionen
;;
esac
done
Hier sind die Schritte, die bei der Verwendung von getopts in einem Bash-Skript ablaufen
- getopts wird in einer while-Schleife verwendet, um alle übergebenen Optionen zu verarbeiten.
- Die Optionen werden als Zeichenkette in doppelten Anführungszeichen an getopts übergeben.
- Innerhalb der Schleife wird der aktuelle Optionenbuchstabe in der Variablen $option gespeichert.
- Ein case-Statement wird verwendet, um den aktuellen Optionsbuchstaben zu überprüfen und den entsprechenden Code auszuführen.
- Du kannst für jeden Optionsbuchstaben einen separaten Codeblock angeben und verschiedene Aktionen ausführen, abhängig von der ausgewählten Option.
- Wenn eine Option erkannt und verarbeitet wurde, wird der entsprechende Codeblock ausgeführt.
- Wenn der Optionsbuchstabe nicht erkannt wird, kannst du einen Codeblock für unbekannte Optionen angeben, der entsprechende Fehlermeldungen ausgibt oder andere Aktionen durchführt.
- Die Schleife wird so lange ausgeführt, bis alle übergebenen Optionen verarbeitet wurden.
- Sobald alle Optionen verarbeitet sind, wird die Schleife beendet, und das Programm kann mit dem restlichen Code fortfahren.
- getopts erleichtert das Parsen und Verarbeiten von Kommandozeilenoptionen in Bash-Skripten erheblich.
- Es sorgt dafür, dass Optionen einheitlich behandelt werden und ermöglicht die Implementierung von spezifischen Aktionen für jede Option.
- Es bietet auch die Möglichkeit, Standardwerte für Optionen festzulegen und mit Argumenten zu interagieren, die den Optionen folgen.
Ein Beispiel
#!/bin/bash
function examine()
{
FILE=$1
shift
echo "Rights on $FILE"
for k in $*
do
case $k in
u) echo USER : $(ls -l $FILE | cut -c 1-3) ;;
g) echo GROUP: $(ls -l $FILE | cut -c 4-6) ;;
o) echo OTHER: $(ls -l $FILE | cut -c 7-9) ;;
esac
done
}
while getopts ugof: opt
do
case $opt in
u) OPT="${OPT} u";;
g) OPT="${OPT} g";;
o) OPT="${OPT} o";;
f) DAT=$OPTARG;;
?) echo "USAGE: $0 -ugo -f FILE"; exit 2 ;;
esac
done
examine $DAT $OPT
- Erklärung
- Das Program kann mit den Optionen -u -g -o und -f Datei aufgerufen werden.
- Die Optionen ugo werden in der Variable $OPT "gesammelt".
- Alle Optionen werden an die Funktion examine übergeben.
- Die Optionen werden oben getrennt und je nach vorhandener Option werden Anweisungen ausgeführt.