Nie sądzę, aby powłoka / narzędzia w historycznym Uniksie ani w czymś tak „najnowszym” jak 4.4BSD obsługiwane przy użyciu podwójnego myślnika (lub dwóch kolejnych łączników) jako ogranicznika końca opcji . Z FreeBSD , można zobaczyć na przykład notatki wprowadzone w rm
manpages z 2.2.1 wydaniu (1997). Ale to tylko dokumentacja dla jednego polecenia.
Patrząc na najstarszy dziennik zmian plików GNU, jaki mogę znaleźć, widzę ten 1 (nieco zmieniony):
Tue Aug 28 18:05:24 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
* touch.c (main): Don't interpret first non-option arg as a <---
time if `--' is given (POSIX-required kludge).
* touch.c: Add long-named options.
* Many files: Include <getopt.h> instead of "getopt.h" since
getopt.h will be in the GNU /usr/include.
* install.c: Declare some functions.
* touch.c, getdate.y, posixtime.y, mktime.c: New files, from bin-src.
* posixtime.y: Move year from before time to after it (but
before the seconds), for 1003.2 draft 10.
To poprzedza Linuksa . Oczywiście należy wziąć pod uwagę fakt, że możesz chcieć utworzyć plik o nazwie zawierającej tę samą liczbę cyfr co specyfikacja czasu (osiem lub dziesięć cyfr po przecinku) - zamiast określać znacznik czasu dla istniejącego pliku ...
- Czy to posix.1, który wprowadził podwójną kreskę (
--
) jako ogranicznik końca opcji w powłokach uniksowych? - Czy to wszystko się zaczęło, ponieważ niektórzy ludzie chcieli używać cyfr w nazwach plików
touch
na początku lat 90., a potem to działało w sposób fragmentaryczny po jednym narzędziu na raz przez dekadę? - O czym jest porywający komentarz w dzienniku zmian?
- Kiedy wytyczna 10 ( Argument - należy zaakceptować jako separator wskazujący koniec opcji. [...] ) wprowadzono do składni narzędzia POSIX ?
1. W przeciwieństwie do tego, tj. Dokumentowanie długich opcji we wszystkich komendach użycia globalnie, co nie jest powiązane. Z drugiej strony, można zobaczyć odniesienia do separatora pojawiają się w coś w rodzaju GNU rm.c w 2000 roku jako komentarz, zanim zostanie wystawiony do użytkownika końcowego w roku 2005 (w diagnose_leading_hyphen funkcji). Ale to wszystko znacznie później i dotyczy bardzo konkretnego przypadku użycia.
getopt
został napisany na początku lat 80. Jeśli ktoś może dostać papier getopt z Uniforum '85, może to dać trochę historii.
--
.
getopt
taki obsługiwany--
.