Cosa significa "-" (doppio trattino)? (noto anche come "doppio trattino nudo")


Risposte:


583

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

3
Soprattutto nel Bash setintegrato, dove è assolutamente necessario.
— l0b0

10
--funziona per separare le opzioni dalle espressioni regolari in grep, ma il modo canonico è usare -e/ --regexp.
— l0b0

5
@ l0b0: il modello da cercare è normalmente uno dei parametri posizionali, quindi può adattarsi dopo il --, sebbene tu abbia ragione nel notare che il mio esempio sopra potrebbe anche essere scritto come grep -e -v file(sebbene sia molto confuso).
— Guss,

2
Non tutti i bashcomandi integrati accettano --come indicatore di fine opzione. [e echonon ad esempio ( uno dei motivi echonon può essere utilizzato in modo affidabile ).
— Stéphane Chazelas,

44

Questo segna la fine dell'elenco dei parametri (opzione).


39

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, e testbuiltins non accettano le opzioni e non trattare --in modo speciale. Il exit, logout, break, continue, let, e shiftbuiltins 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.


2
+1 per riferimento man bash(nota per sé per la prossima volta:).
— user3773048,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.