O que faz o hífen duplo em 'lxc exec'

4

Alguns tutoriais (como o Primeiros passos no linuxcontainers.org) recomendam o uso de um hífen ( -- ) ao usar lxc exec para executar um programa dentro de um contêiner LXD, como em

$ lxc exec my-container -- apt update

Suspeito que -- informe lxc exec para passar as sinalizações fornecidas para o programa, porque, por exemplo, lxc exec my-container apt list --upgradable falha com

error: flag provided but not defined: --upgradable

No entanto, não consigo encontrar nenhuma documentação sobre o problema. Alguém pode confirmar ou esclarecer se não é exatamente o que faz?

Além disso, vi casos em que as pessoas usam -- em lugares diferentes, por exemplo:

$ lxc exec my-container apt -- list --upgradable
$ lxc exec my-container apt list -- --upgradable

Qual é a diferença?

    
por Jonathan Y. 09.05.2017 / 09:11

1 resposta

4

Em parte, esta é uma duplicata de o que significa duplo traço .

Você faz uma pergunta interessante sobre lxc , então deixe-me responder isso. Nos dois exemplos, as duas instâncias de -- informam lxc para não interpretar as opções depois desse ponto. O posicionamento diferente neste caso é irrelevante. No entanto, como você está executando uma linha de comando em um contêiner, convém usar -- como parte dessa linha de comando. Considere o seguinte: Eu criei um arquivo /tmp/bar contendo a linha --foo . Os seguintes comandos foram executados no contêiner:

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

Agora vou procurar por isso usando grep . Preciso deixar grep saber que -- faz parte do padrão de pesquisa, não uma opção para grep :

$ lxc exec myContainer -- grep -- --foo /tmp/bar
here is --foo

Se eu usar um único -- , ele será consumido pela linha de comando lxc e receberei o erro:

$ lxc exec myContainer grep -- --foo /tmp/bar
grep: unrecognized option '--foo'
Usage: grep [OPTION]... PATTERN [FILE]...
Try 'grep --help' for more information.
    
por Peter Van Heusden 09.05.2017 / 09:57

Tags