Bash getopts

Aus Xinux Wiki
Version vom 24. Mai 2023, 18:38 Uhr von Thomas.will (Diskussion | Beiträge) (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) ;…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen
#!/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.