Ho visto molti tutorial che usano i --comandi after. Qualcosa come questo:
command --
Cosa significa questo --?
Ho visto molti tutorial che usano i --comandi after. Qualcosa come questo:
command --
Cosa significa questo --?
Risposte:
Il --viene utilizzato per indicare la fine delle opzioni della riga di comando. Ciò consente di utilizzare gli argomenti che iniziano con --. Ad esempio, se si crea un file chiamato --foo:
$ > '--foo'
$ ls
--foo
E poi prova a eliminarlo, rmpenserà che gli stai dando un argomento:
$ rm --foo
rm: unrecognized option '--foo'
Try 'rm ./--foo' to remove the file '--foo'.
Try 'rm --help' for more information.
Un modo per aggirare questo è usare --:
$ rm -- --foo
Questa è una pratica comune e consigliata da POSIX , quindi è supportata da molti programmi.
rmprogramma e di molti programmi di utilità POSIX-compliant. Vedere la linea guida 10 . Per verificare effettivamente che non sia Bash a fare il lavoro (e che non avrebbe senso), basta creare un piccolo script con just printf '> %s <\n' "$@"e avviarlo con --.
--, ma, ovviamente, questo è semplicemente perché il relativo modulo Perl ( getopts) lo supporta anche. Hai ragione, ho appena cercato man bash, ho visto la sezione che avevo citato ma non ho notato che si trovava nella sezione "Opzioni della riga di comando". Grazie per la correzione, risposta modificata.
La maggior parte dei comandi utilizzerà a - per indicare al comando che ulteriori parametri dovrebbero essere trattati in modo diverso. Un esempio è il nome di file rm - - indicato sopra. Un altro esempio, uno script come 'startx' interpreterà se stesso tutto prima - e passerà tutto ciò che lo segue al server X.