Die Linux Foundation- Liste der Standarddienstprogramme enthält, getopts
jedoch nicht getopt
. Ähnliches gilt für die Open Group- Liste der Posix-Dienstprogramme.
Inzwischen Wikipedias Liste von Standard - Unix - Befehle enthält getopt
aber nicht getopts
. In ähnlicher Weise enthält das Windows-Subsystem für Linux (basierend auf Ubuntu basierend auf Debian) auch, getopt
aber nicht getopts
(und es ist die GNU Enhanced-Version ).
balter@spectre:~$ which getopt
/usr/bin/getopt
balter@spectre:~$ getopt -V
getopt from util-linux 2.27.1
balter@spectre:~$ which getopts
balter@spectre:~$
Wenn ich also eine auswählen möchte, bei der ich am sichersten sein kann, dass jemand eine der Standard-Linux-Distributionen verwendet (z. B. Debian, Red Hat, Ubuntu, Fedora, CentOS usw.), welche sollte ich auswählen?
Hinweis:
Vielen Dank an Michael und Muru für die Erklärung von Builtin vs Executable. Ich hatte gerade über stolperte dies auch , welche Listen builtins bash.
getopts
ist eine integrierte Shell (wie beide Quellen identifizieren), keine ausführbare Datei. Es ist in jeder POSIX-Shell enthalten, einschließlich der von WSL Ubuntu. Was versuchst du eigentlich damit zu machen? Es ist nicht unmöglich, dass es Fälle gibt, in denen es darauf ankommt, was Sie verwenden, aber es gibt hier nicht genügend Informationen, um dies zu sagen.getopt
odergetopts
überhaupt verwenden möchten, ist dies ein Warnsignal dafür, dass Ihr Shell-Skript wahrscheinlich so kompliziert ist, dass Sie es in eine bessere Programmiersprache umschreiben sollten, z. B. Perl, Python, Ruby oder sogar PHP.Antworten:
which
ist das falsche Werkzeug.getopts
ist in der Regel auch ein eingebautes :Wenn Sie ein Shell-Skript verwenden, können Sie sich sicher darauf verlassen
getopts
. Es mag andere Gründe geben , den einen oder anderen zu bevorzugen, aber diesgetopts
ist Standard .Siehe auch: Warum nicht "welche" verwenden? Was ist dann zu verwenden?
quelle
getopt
wurde vor einiger Zeit zugunsten von fallen gelassengetopts
. Das neue GNU-Enhancedgetopt
scheint sich jedoch verbessert zu habengetopts
. Aber wenngetopts
es der Posix-Standard ist, sollte ich mich vorerst daran halten.Ich würde auch lieber
getopts
übergetopt
den folgenden Gründen:getopt
Nachteilegetopts
Vorteile-a -b
sowie-ab
quelle
-a -b === -ab