He visto muchos tutoriales que usan --
comandos posteriores. Algo como esto:
command --
¿Qué significa esto --
?
He visto muchos tutoriales que usan --
comandos posteriores. Algo como esto:
command --
¿Qué significa esto --
?
Respuestas:
El --
se utiliza para indicar el final de las opciones de línea de comando. Esto le permite usar argumentos que comienzan con --
. Por ejemplo, si crea un archivo llamado --foo
:
$ > '--foo'
$ ls
--foo
Y luego intente eliminarlo, rm
pensará que le está dando un argumento:
$ rm --foo
rm: unrecognized option '--foo'
Try 'rm ./--foo' to remove the file '--foo'.
Try 'rm --help' for more information.
Una forma de evitar esto es usar --
:
$ rm -- --foo
Esta es una práctica común y recomendada por POSIX , por lo que es compatible con muchos programas.
rm
programa y de muchas utilidades compatibles con POSIX. Ver directriz 10 . Para comprobar que Bash no está haciendo el trabajo (y eso no tendría sentido), simplemente cree un pequeño script con just printf '> %s <\n' "$@"
y ejecútelo con --
.
--
, pero, por supuesto, eso es simplemente porque el módulo Perl relevante ( getopts
) también lo admite. Tienes toda la razón, solo busqué rápidamente man bash
, vi la sección que había citado pero no me di cuenta de que estaba en la sección "opciones de línea de comando". Gracias por la corrección, respuesta editada.