Ich möchte wissen, wie man Befehlen Argumente hinzufügt.
Ich hätte es gerne ungefähr so:
$ arg --test
„arg“ wäre der Hauptbefehl und „--test“ das Argument.
Antwort1
Für nummerierte Argumente zwischen 0
und , 9
wobei x
das spezifische nummerierte Argument ist, verwenden Sie diese Notation:
$x
Für nummerierte Argumente darüber, wobei es x
sich um das spezifische nummerierte Argument handelt, verwenden Sie diese Notation:
${x}
Eine Liste aller Argumente erhalten Sie wie folgt:
${@}
Oder dieses:
${*}
Beachten Sie, dass bei doppelten Anführungszeichen ${*}
alle durch Leerzeichen getrennten Argumente (normalerweise, technisch gesehen ist es das erste Zeichen der Variable $IFS
(interner Feldtrenner)) zu einer Zeichenfolge erweitert werden. ${@}
Bei doppelten Anführungszeichen wird es zu mehreren Zeichenfolgen erweitert.
${@}
Bei Verwendung von oder ist eine Klammerung nicht erforderlich ${*}
.
Antwort2
Dies ist möglicherweise ein Duplikat der beantworteten Fragen. Nachfolgend finden Sie jedoch eine mögliche Lösung für Ihre Anfrage in Form eines sehr einfachen Shell-Skripts.
#!/bin/bash
for i in ${@} ; do
case ${i} in
--test) echo "test option found"
;;
*) echo "Usage: $0 [--test]"
exit 1
esac
done
echo "$0 finished."
Sie können noch mehr lernen, wenn Sie mit den Optionen dieses Shell-Skripts auf der Kommandozeile herumspielen. Dies kann die erste Antwort ergänzen, indemJL2210ganz passend.
NB: Die Zeile echo "Usage: $0 [--test]"
soll eine Hilfemeldung anbieten und verwendet die Konvention, optionale Argumente in eckigen Klammern anzugeben.
Hoffe das hilft.