Je ne pense pas que le shell / les utilitaires dans Unix historique, ni dans quelque chose d'aussi "récent" que 4.4BSD, prennent en charge l'utilisation d'un double tiret (ou de deux tirets consécutifs) comme délimiteur de fin d'options . Avec FreeBSD , vous pouvez voir par exemple une note introduite dans les rm
pages de manuel avec la version 2.2.1 (1997). Mais ceci est juste la documentation pour une commande.
En regardant le plus ancien changelog GNU fileutils que je puisse trouver, je vois ceci 1 (légèrement modifié):
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.
Ceci est antérieur à Linux . Il est clair que vous voudrez peut-être créer un fichier avec un nom contenant le même nombre de chiffres qu'une spécification temporelle (nombre décimal à huit ou dix chiffres), plutôt que de spécifier un horodatage pour un fichier existant ...
- C'est donc posix.1 qui a introduit le double tiret (
--
) comme délimiteur de fin d’options dans les shells Unix? - Est-ce que tout cela a commencé parce que certaines personnes voulaient utiliser des chiffres dans les noms de fichiers
touch
au début des années 90 et ensuite cela s'est poursuivi de manière fragmentée, un utilitaire à la fois pendant une décennie ?? - Quel est le commentaire animé dans le journal des modifications?
- Quand la directive 10 ( L'argument - devrait être acceptée comme un délimiteur indiquant la fin des options. [...] ) a été introduite dans la syntaxe POSIX Utility ?
1. Par opposition à cela, c’est- à - dire la documentation des options longues dans l’utilisation globale des commandes, ce qui n’est pas lié. D'autre part, vous pouvez voir que la référence au délimiteur apparaît dans GNU rm.c en 2000 sous forme de commentaire, avant d'être exposée à l'utilisateur final en 2005 ( fonction diagnose_leading_hyphen ). Mais tout cela est beaucoup plus tard et concerne un cas d'utilisation très spécifique.
getopt
sa rédaction au début des années 80. Si quelqu'un peut obtenir le document getopt d'Uniforum '85, cela pourrait donner un peu d'histoire.
--
.
getopt
prise en charge--
.