Bash getopts
Version vom 2. Juni 2023, 08:54 Uhr von Linkai.zhang (Diskussion | Beiträge)
#!/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.