Réponses:
Plus précisément, un double tiret ( --
) est utilisé dans les commandes intégrées bash et de nombreuses autres commandes pour indiquer les options de fin de commande, après quoi seuls les paramètres de position sont acceptés.
Exemple d'utilisation: disons que vous voulez grep un fichier pour la chaîne -v
- -v
sera normalement considérée comme l'option permettant d'inverser le sens de la correspondance (affiche uniquement les lignes qui ne correspondent pas), mais --
vous pouvez utiliser grep pour une chaîne -v
comme ceci:
grep -- -v file
--
fonctionne pour séparer les options des expressions régulières dans grep
, mais la manière canonique consiste à utiliser -e
/ --regexp
.
--
, bien que vous ayez raison de noter que mon exemple ci-dessus pourrait également être écrit ainsi grep -e -v file
(bien que cela soit très déroutant).
bash
commandes intégrées ne sont pas acceptées --
comme marqueur de fin d’option. [
et echo
ne le faites pas par exemple ( une des raisons echo
ne peut pas être utilisée de manière fiable ).
Dans man bash
nous pouvons lire dans la section Commandes intégrées Shell :
Sauf indication contraire, chaque commande intégrée documentée dans cette section sous la forme d'une option d'acceptation précédée de
-
accepte--
de signifier la fin des options .Les
:
,true
,false
ettest
builtins n'acceptent pas les options et ne traitent pas--
spécialement. Leexit
,logout
,break
,continue
,let
etshift
builtins accepter et arguments de processus commençant par-
sans nécessiter--
. D'autres commandes intégrées qui acceptent des arguments mais ne sont pas spécifiées comme options d'acceptation interprètent les arguments commençant par-
des options non valides et nécessitent--
d'empêcher cette interprétation.Notez que cela
echo
n'interprète pas--
la fin des options.
man bash
(note-to-self pour la prochaine fois).
POSIX.1-2017
12.2 Instructions pour la syntaxe des utilitaires
Directive 10:
Le premier
--
argument qui n'est pas un argument d'option doit être accepté comme un délimiteur indiquant la fin des options. Tous les arguments suivants doivent être traités comme des opérandes, même s'ils commencent par le caractère '-
'.
http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html#tag_12_02
set
intégré, où il est absolument nécessaire.