Non credo che la shell / utility in Unix storico né in qualcosa di "recente" come 4.4BSD supportato usando un trattino doppio (o due trattini consecutivi) come fine del delimitatore di opzioni . Con FreeBSD , ad esempio, puoi vedere una nota introdotta nelle rm
manpage con la versione 2.2.1 (1997). Ma questa è solo la documentazione per un comando.
Guardando più antichi fileutils GNU ChangeLog posso trovare, vedo questo 1 (leggermente modificato):
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.
Questo precede Linux . È chiaramente da considerare il fatto che potresti voler creare un file con un nome contenente lo stesso numero di cifre di una specifica temporale (numero decimale di otto o dieci cifre) - piuttosto che specificare un timestamp per un file esistente ...
- Quindi è posix.1 che ha introdotto il doppio trattino (
--
) come fine del delimitatore di opzioni nelle shell Unix? - Tutto è iniziato perché alcune persone volevano usare le cifre nei nomi dei file con
touch
nei primi anni '90 e poi questo è andato avanti in modo frammentario un'utilità alla volta per un decennio ?? - Di cosa parla il vivace commento nel log delle modifiche?
- Quando è stata accolta la linea guida 10 ( L'argomento - come delimitatore che indica la fine delle opzioni. [...] ) alla sintassi dell'utilità POSIX ?
1. Al contrario di ciò, vale a dire documentare le opzioni lunghe in tutti i comandi utilizzate a livello globale, il che non è correlato. D'altra parte, si può vedere riferimento al delimitatore apparire in qualcosa di simile GNU rm.c nel 2000 come un commento, prima di essere esposti per l'utente finale nel 2005 (la diagnose_leading_hyphen funzioni). Ma questo è tutto molto più tardi e riguarda un caso d'uso molto specifico.
getopt
stato scritto nei primi anni '80. Se qualcuno può ottenere il documento getopt da Uniforum '85, questo potrebbe dare un po 'di storia.
--
.
getopt
supporto supportato--
.