Getopts: Unterschied zwischen den Versionen
Erscheinungsbild
	
	
K Textersetzung - „Linux:Befehl“ durch „Linux/Befehl“  | 
				K Textersetzung - „–“ durch „-“  | 
				||
| (10 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
'''topic'''   | '''topic''' - Beschreibung  | ||
= Beschreibung =  | = Beschreibung =  | ||
= Installation =  | = Installation =  | ||
= Syntax =  | = Syntax =  | ||
==   | == Argumente ==  | ||
== Optionen ==  | == Optionen ==  | ||
= Konfiguration =  | = Konfiguration =  | ||
| Zeile 10: | Zeile 10: | ||
= Links =  | = Links =  | ||
== Dateien ==  | == Dateien ==  | ||
== Man-  | == Man-Page ==  | ||
== Intern ==  | == Intern ==  | ||
== Weblinks ==  | == Weblinks ==  | ||
| Zeile 42: | Zeile 42: | ||
* Jeder Programmierer kennt den Aufwand beim Parsen der an ein Programm übergebenen Argumente und Optionen. Sind die Optionen erlaubt? Stimmt die Reihenfolge? Ist das Argument zulässig?...?    | * Jeder Programmierer kennt den Aufwand beim Parsen der an ein Programm übergebenen Argumente und Optionen. Sind die Optionen erlaubt? Stimmt die Reihenfolge? Ist das Argument zulässig?...?    | ||
* Die meisten Programmiersprachen bringen in ihrem Sprachschatz eine Funktion mit, die eine solche Auswertung wesentlich vereinfacht. Die Funktion der Bash ist   | * Die meisten Programmiersprachen bringen in ihrem Sprachschatz eine Funktion mit, die eine solche Auswertung wesentlich vereinfacht. Die Funktion der Bash ist ''getopts''.    | ||
* Dieses Kommando erlaubt einem Shellskript die unter Unix übliche Gruppierung von Optionen zu verwenden. Anstatt "-l -a -z" kann auch "-laz" oder "-a -lz"... geschrieben werden.    | * Dieses Kommando erlaubt einem Shellskript die unter Unix übliche Gruppierung von Optionen zu verwenden. Anstatt "-l -a -z" kann auch "-laz" oder "-a -lz"... geschrieben werden.    | ||
* Solche Angaben über die bereits besprochenen Positionsparameter auszuwerten, ist zwar denkbar, aber mehr als verzwickt.    | * Solche Angaben über die bereits besprochenen Positionsparameter auszuwerten, ist zwar denkbar, aber mehr als verzwickt.    | ||
* Im Zusammenhang mit der Bashprogrammierung werden wir   | * Im Zusammenhang mit der Bashprogrammierung werden wir ''getopts'' extensiv verwenden, an dieser Stelle soll ein kleines Beispiel das Gefühl für die Anwendung schulen.    | ||
* Ein Skript soll die Optionen "-a", "-l", "-F" und "-f <Datei>" verstehen.    | * Ein Skript soll die Optionen "-a", "-l", "-F" und "-f <Datei>" verstehen.    | ||
* Beachten Sie, dass "-f" die Angabe eines Arguments erfordert. Die notwendige Zeichenkette der OPTIONEN ist "alf:F".    | * Beachten Sie, dass "-f" die Angabe eines Arguments erfordert. Die notwendige Zeichenkette der OPTIONEN ist "alf:F".    | ||
* Die Reihenfolge der Optionen ist unwichtig, entscheidend ist der Doppelpunkt hinter "-f:", der   | * Die Reihenfolge der Optionen ist unwichtig, entscheidend ist der Doppelpunkt hinter "-f:", der ''getopts'' mitteilt, dass dieser Option ein Argument folgen muss:    | ||
  '''cat parseline'''  |   '''cat parseline'''  | ||
| Zeile 65: | Zeile 65: | ||
  Option a  |   Option a  | ||
  Option F  |   Option F  | ||
  ./parseline: option requires an argument   |   ./parseline: option requires an argument - f  | ||
  '''parseline -f so_gehts -l'''  |   '''parseline -f so_gehts -l'''  | ||
| Zeile 78: | Zeile 78: | ||
[[Kategorie:Bash  | [[Kategorie:Bash/Builtin]]  | ||
[[Kategorie:Linux/Befehl]]  | [[Kategorie:Linux/Befehl]]  | ||
[[Kategorie:Bash  | [[Kategorie:Bash/Scripting]]  | ||
Aktuelle Version vom 11. Mai 2025, 19:42 Uhr
topic - Beschreibung
Beschreibung
Installation
Syntax
Argumente
Optionen
Konfiguration
Anwendung
Links
Dateien
Man-Page
Intern
Weblinks
Kontrollfragen
Testfrage 1
Antwort1
Testfrage 2
Antwort2
Testfrage 3
Antwort3
Testfrage 4
Antwort4
Testfrage 5
Antwort5
getopts
$ getopts OPTIONEN Variable
- Jeder Programmierer kennt den Aufwand beim Parsen der an ein Programm übergebenen Argumente und Optionen. Sind die Optionen erlaubt? Stimmt die Reihenfolge? Ist das Argument zulässig?...?
 - Die meisten Programmiersprachen bringen in ihrem Sprachschatz eine Funktion mit, die eine solche Auswertung wesentlich vereinfacht. Die Funktion der Bash ist getopts.
 - Dieses Kommando erlaubt einem Shellskript die unter Unix übliche Gruppierung von Optionen zu verwenden. Anstatt "-l -a -z" kann auch "-laz" oder "-a -lz"... geschrieben werden.
 - Solche Angaben über die bereits besprochenen Positionsparameter auszuwerten, ist zwar denkbar, aber mehr als verzwickt.
 - Im Zusammenhang mit der Bashprogrammierung werden wir getopts extensiv verwenden, an dieser Stelle soll ein kleines Beispiel das Gefühl für die Anwendung schulen.
 - Ein Skript soll die Optionen "-a", "-l", "-F" und "-f <Datei>" verstehen.
 - Beachten Sie, dass "-f" die Angabe eines Arguments erfordert. Die notwendige Zeichenkette der OPTIONEN ist "alf:F".
 - Die Reihenfolge der Optionen ist unwichtig, entscheidend ist der Doppelpunkt hinter "-f:", der getopts mitteilt, dass dieser Option ein Argument folgen muss:
 
cat parseline
#!/bin/sh
while getopts alf:F Optionen; do
   case $Optionen in
      a) echo "Option a";;
      l) echo "Option l";;
      f) echo "Option f Argument ist $OPTARG";;
      F) echo "Option F";;
   esac
done
parseline -aF -f
Option a
Option F
./parseline: option requires an argument - f
parseline -f so_gehts -l
Option f Argument ist so_gehts
Option l
- Benötigt eine Option ein Argument, kann auf dieses über die Variable OPTARGS zugegriffen werden
 - OPTIND enthält zu jedem Zeitpunkt den Index auf die nächste von getopts zu betrachtende Option.
 - In Shellskripten wird man Fehlermeldungen von getopts abfangen.
 - Dies geht entweder über die Umleitung der Standardfehlerausgabe oder durch Setzen der Variable OPTERR auf 0.