Ich habe getopts vor kurzem verwendet und ich habe alles eingerichtet. Ich habe ein Problem. Ich mag es so arbeiten, dass, wenn jemand nicht ein Argument in der Befehlszeile eingeben, sie den Hilfetext zu erhalten, z.B .:Wie Hilfetext angezeigt wird, wenn keine Argumente übergeben werden
$ ./script
$ help: xyz - argument must be used.
Hier ist, was ich im Moment habe.
#!/bin/bash
function helptext {
# ...
}
function mitlicense {
# ...
}
while getopts "hl" opt; do
case $opt in
h) helptext >&2
exit 1
;;
l) mitlicense >&2
exit 0
;;
\?) echo "Invalid option: -$OPTARG" >&2
exit 1
;;
:) echo "Option -$OPTARG requires an argument." >&2
exit 1
;;
*) helptext >&2
exit 1
;;
esac
done
Vielen Dank auch, Sir! – user2298964
Es ist ein Randfall, aber erwähnenswert: Ihre Bedingung wird auch als wahr ausgewertet, wenn "$ 1" _was_ übergeben wurde, aber als _empty-Zeichenfolge_; z. B. './script '' und' ./script '' foo 'würde immer noch den Hilfetext anzeigen. – mklement0