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, rmpensará 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.
rmprograma 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.