Risposte:
Più precisamente, un doppio trattino ( --) viene utilizzato nei comandi integrati bash e in molti altri comandi per indicare la fine delle opzioni di comando, dopo di che vengono accettati solo i parametri posizionali.
Esempio di utilizzo: supponiamo che tu voglia grep un file per la stringa -v- normalmente -vsarà considerata l'opzione per invertire il significato della corrispondenza (mostra solo le linee che non corrispondono), ma con --te puoi grep per la stringa in -vquesto modo:
grep -- -v file
--funziona per separare le opzioni dalle espressioni regolari in grep, ma il modo canonico è usare -e/ --regexp.
--, sebbene tu abbia ragione nel notare che il mio esempio sopra potrebbe anche essere scritto come grep -e -v file(sebbene sia molto confuso).
bashcomandi integrati accettano --come indicatore di fine opzione. [e echonon ad esempio ( uno dei motivi echonon può essere utilizzato in modo affidabile ).
In man bashpossiamo leggere nella sezione Comandi integrati Shell :
Salvo diversamente specificato, ciascun comando incorporato documentato in questa sezione come accettazione delle opzioni preceduto da
-accetta--per indicare la fine delle opzioni .I
:,true,false, etestbuiltins non accettano le opzioni e non trattare--in modo speciale. Ilexit,logout,break,continue,let, eshiftbuiltins accettare e gli argomenti di processo a cominciare-senza richiedere--. Altri builtin che accettano argomenti ma che non sono specificati come opzioni di accettazione interpretano gli argomenti che iniziano con-come opzioni non valide e richiedono--di impedire questa interpretazione.Si noti che
echonon interpreta--per indicare la fine delle opzioni.
man bash(nota per sé per la prossima volta:).
POSIX.1-2017
12.2 Linee guida per la sintassi dell'utilità
Linea guida 10:
Il primo
--argomento che non è un argomento opzione dovrebbe essere accettato come delimitatore che indica la fine delle opzioni. Tutti gli argomenti seguenti devono essere trattati come operandi, anche se iniziano con il-carattere " ".
http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html#tag_12_02
setintegrato, dove è assolutamente necessario.