it-swarm-eu.dev

Co znamená „-“ (dvojitá pomlčka)?

Viděl jsem -- použito v příkazu compgen.

Například:

compgen -W "foo bar baz" -- b

Jaký je význam -- tam?

518
dogbane

Přesněji řečeno, dvojitá pomlčka (--) se používá ve většině vestavěných příkazů bash a mnoha dalších příkazech k označení voleb voleb na konci, po nichž jsou akceptovány pouze poziční parametry.

Příklad použití: řekněme, že chcete prohodit soubor pro řetězec -v - obvykle -v bude považováno za možnost obrátit význam shody (zobrazí pouze řádky, které se neshodují), ale s -- můžete táhnout za řetězec -v takhle:

grep -- -v file
631
Guss

V man bash Můžeme číst Shell Builtin Commands sekce:

Není-li uvedeno jinak, každý vestavěný příkaz zdokumentovaný v této části jako přijímající možnosti, kterým předchází - Přijímá --pro označení konce možností.

Vestavěné :, true, false a test nepřijímají možnosti a nezabývají se -- Speciálně. exit, logout, break, continue, let a shift vestavby přijímají a zpracovávají argumenty začínající na - Bez nutnosti --. Ostatní vestavby, které přijímají argumenty, ale nejsou specifikovány jako akceptující volby, interpretují argumenty začínající - Jako neplatné možnosti a vyžadují --, Aby této interpretaci zabránily.

Všimněte si, že echo neinterpretuje --, Což znamená konec možností.

48
kenorb

Označuje konec seznamu parametrů (opcí).

47
polemon

POSIX.1-2017

12.2 Pokyny pro syntaxe nástroje

Pravidlo 10:

První -- argument, který není argumentem option-argument, by měl být přijat jako oddělovač označující konec možností. Všechny následující argumenty by měly být považovány za operandy, i když začínají znakem '- 'znak.

http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html#tag_12_02

18
John Doe