it-swarm-tr.com

"-" (çift çizgi) ne anlama geliyor?

compgen komutunda -- Kullanıldığını gördüm.

Örneğin:

compgen -W "foo bar baz" -- b

Oradaki -- Ne anlama geliyor?

518
dogbane

Daha kesin olarak, çoğu bash yerleşik komutunda ve diğer birçok komutta, komut seçeneklerinin sonunu belirtmek için çift tire (--) Kullanılır ve bundan sonra yalnızca konum parametreleri kabul edilir.

Örnek kullanım: diyelim ki -v Dizesi için bir dosya grep etmek istiyorsunuz, normalde -v Eşleşen anlamı tersine çevirme seçeneği olarak kabul edilecektir (sadece eşleşmeyen satırları göster), ancak --, -v Dizesi için şu şekilde grep yapabilirsiniz:

grep -- -v file
631
Guss

İçinde man bash Kabuk Yerleşik Komutları bölümünde okuyabiliriz:

Aksi belirtilmedikçe, bu bölümde belgelenen her yerleşik komutun önünde - kabul eder --seçeneklerin sonunu belirtmek için.

:, true, false ve test yerleşik seçenekleri kabul etmiyor ve -- özel olarak. exit, logout, break, continue, let ve shift yerleşikleri, ile başlayan argümanları kabul eder ve işler - gerektirmeden --. Bağımsız değişkenleri kabul eden ancak kabul seçenekleri olarak belirtilmeyen diğer yerleşikler, - geçersiz seçenek olarak ve -- Bu yorumu önlemek için.

echo ifadesinin -- seçeneklerin sonu anlamına gelir.

48
kenorb

Bu, parametre (seçenek) listesinin sonunu işaretler.

47
polemon

POSIX.1-2017

12.2 Yardımcı Program Sözdizimi Yönergeleri

Kılavuz İlke 10:

Seçenek bağımsız değişkeni olmayan ilk -- Bağımsız değişkeni, seçeneklerin sonunu belirten bir sınırlayıcı olarak kabul edilmelidir. Aşağıdaki argümanlar '-' Karakteri ile başlasalar bile işlenen olarak ele alınmalıdır.

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

18
John Doe