¿Qué significa "-" (doble guión)? (también conocido como "doble guión desnudo")


Respuestas:


583

Más precisamente, --se utiliza un doble guión ( ) en los comandos integrados de bash y muchos otros comandos para indicar el final de las opciones de comando, después de lo cual solo se aceptan parámetros posicionales.

Ejemplo de uso: supongamos que desea grep un archivo para la cadena -v- normalmente -vse considerará la opción para revertir el significado coincidente (solo mostrar líneas que no coinciden), pero con --usted puede grep para una cadena -vcomo esta:

grep -- -v file

3
Lo más notable en el Bash setincorporado, donde es absolutamente necesario.
— l0b0

10
--funciona para separar las opciones de las expresiones regulares grep, pero la forma canónica es usar -e/ --regexp.
— l0b0

55
@ l0b0: el patrón para buscar es normalmente uno de los parámetros posicionales, por lo que puede ajustarse después del --, aunque tiene razón al señalar que mi ejemplo anterior también podría escribirse como grep -e -v file(aunque eso es muy confuso).
— Guss

2
No todos los bashcomandos incorporados aceptan --como el final del marcador de opción. [y echono, por ejemplo ( una de las razones echono se puede usar de manera confiable ).
— Stéphane Chazelas

44

Esto marca el final de la lista de parámetros (opción).


39

En man bashpodemos leer en la sección de comandos incorporados de Shell :

A menos que se indique lo contrario, cada comando incorporado documentado en esta sección acepta opciones precedidas por -acepta -- para indicar el final de las opciones .

Los :, true, false, y testórdenes internas no aceptan opciones y no tratan --de forma especial. El exit, logout, break, continue, let, y shiftórdenes internas y aceptar los argumentos de proceso que comienza con -sin requerir --. Otros componentes incorporados que aceptan argumentos pero no se especifican como opciones de aceptación interpretan argumentos que comienzan -como opciones no válidas y requieren --evitar esta interpretación.

Tenga en cuenta que echono interpreta --que significa el final de las opciones.


2
+1 para referencia man bash(note to self para la próxima vez:).
— user3773048

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.