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.
getopt
oder getopts
ü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.
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.