O que significa "-" (traço duplo)? (também conhecido como "traço duplo nu")


Respostas:


583

Mais precisamente, um traço duplo ( --) é usado nos comandos internos do bash e em muitos outros comandos para significar o final das opções de comando, após o qual apenas parâmetros posicionais são aceitos.

Exemplo de uso: digamos que você queira grep um arquivo para a string -v- normalmente -vserá considerada a opção de reverter o significado correspondente (apenas mostrar linhas que não correspondem), mas com --você pode grep para uma string -vcomo esta:

grep -- -v file

3
Mais notavelmente no Bash setembutido, onde é absolutamente necessário.
L0b0 18/10/12

10
--trabalha para separar opções de expressões regulares em grep, mas a forma canônica é usar -e/ --regexp.
L0b0 18/10/12

5
@ l0b0: o padrão de pesquisa é normalmente um dos parâmetros de posição, para que possa caber após a --, embora você está correto em ressaltar que meu exemplo acima também pode ser escrito como grep -e -v file(apesar de que é muito confuso).
Guss

2
Nem todos os bashcomandos internos aceitam --como marcador de fim de opção. [e echonão por exemplo ( um dos motivos echonão pode ser usado com segurança ).
Stéphane Chazelas 21/03

44

Isso marca o final da lista de parâmetros (opção).


39

Em man bashpodemos ler na seção Comandos internos do shell :

A menos que indicado de outra forma, cada comando interno documentado nesta seção como aceitando opções precedidas por -accept -- significa o final das opções .

Os :, true, false, e testbuiltins não aceitam opções e não tratar --de forma especial. A exit, logout, break, continue, let, e shiftbuiltins aceitar e argumentos processo começando com -sem exigir --. Outros componentes internos que aceitam argumentos, mas não são especificados como opções de aceitação, interpretam argumentos que começam com -opções inválidas e exigem --essa interpretação.

Observe que echonão interpreta --o fim das opções.


2
+1 para referência man bash(nota para si mesmo na próxima vez:).
user3773048

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.