Ich versuche Argumente an ein Skript zu übergeben, das ich geschrieben habe, aber ich kann es nicht richtig machen.Bash-Skriptargumente
Was ich will, ist ein obligatorisches Argument ohne Flag und zwei optionale Argumente mit Fahnen, so kann es wie folgt aufgerufen werden:
./myscript mandatory_arg -b opt_arg -a opt_arg
oder
./myscript mandatory_arg -a opt_arg
./myscript mandatory_arg -b opt_arg
Ich sah in getopts und hab das:
while getopts b:a: option
do
case "${option}"
in
b) MERGE_BRANCH=${OPTARG};;
a) ACTION=${OPTARG};;
esac
done
if "$1" = ""; then
exit
fi
echo "$1"
echo "$MERGE_BRANCH"
echo "$ACTION"
Aber es funktioniert überhaupt nicht.
Beim Versuch, dies auszuführen es druckt das obligatorische Argument aus und dann " "Für die Optionals, wenn ich ohne das obligatorische ausführen, antwortet es mit" fehlendes obligatorisches Argument " –
Was ist der Grund dafür, das obligatorische Argument nicht zuerst zu empfehlen? und ich denke etwas fehlt von der letzten Bearbeitung –
@ A.Jac es ist nur eine Frage der * Konvention * und * persönlichen Geschmack * –