Certains tutoriels (tels que le Getting Started sur linuxcontainers.org) recommandent l'utilisation d'un double trait d'union (--
) lorsque vous utilisez lxc exec
pour exécuter un programme dans un conteneur LXD. , un péché
$ lxc exec my-container -- apt update
Je soupçonne que --
dit à lxc exec
de transmettre les indicateurs fournis au programme, car p. Ex. lxc exec my-container apt list --upgradable
échoue avec
error: flag provided but not defined: --upgradable
Cependant, je ne trouve aucune documentation sur le problème. Quelqu'un peut-il confirmer ou préciser si ce n'est pas exactement ce que cela fait?
De plus, j’ai vu des cas où les gens utilisent --
à différents endroits, par exemple:
$ lxc exec my-container apt -- list --upgradable
$ lxc exec my-container apt list -- --upgradable
Quelle est la différence?
Ceci est en partie une copie de que signifie le double tiret .
Vous posez une question intéressante à propos de lxc
alors laissez-moi vous répondre. Dans vos deux exemples, les deux instances de --
indiquent à lxc
de ne pas interpréter les options après ce moment. Le positionnement différent dans ce cas est sans importance. Cependant, étant donné que vous exécutez une ligne de commande dans un conteneur, vous pouvez utiliser --
dans le cadre de cette ligne de commande. Considérez ce qui suit: J'ai créé un fichier /tmp/bar
contenant la ligne --foo
. Les commandes suivantes ont été exécutées dans le conteneur:
root@myContainer:~# echo "here is --foo" >/tmp/bar
root@myContainer:~# echo "this line has no double dash" >> /tmp/bar
root@myContainer:~# cat /tmp/bar
here is --foo
this line has no double dash
root@myContainer:~# exit
Maintenant, je vais chercher cela en utilisant grep
. Je dois informer grep
que le --
fait partie du modèle de recherche et non une option pour grep
:
$ lxc exec myContainer -- grep -- --foo /tmp/bar
here is --foo
Si j'utilise un seul --
, il est consommé par la ligne de commande lxc
et j'obtiens l'erreur suivante:
$ lxc exec myContainer grep -- --foo /tmp/bar
grep: unrecognized option '--foo'
Usage: grep [OPTION]... PATTERN [FILE]...
Try 'grep --help' for more information.