Terminal komutlarında “-” ne anlama geliyor?


23

Bir --sonraki komutları kullanan birçok ders gördüm . Bunun gibi bir şey:

command -- 

Bu ne anlama --geliyor?


Hangi video dersleri?
TheWanderer


Aslında, bu sorunun AU’da halihazırda bir sorun olmadığına şaşırdım. Diğer StackExchange toplulukları ile ilgili aynı sorular dupes olarak sayılmaz mı (@edwinksl tarafından verilen bağlantıya bakınız)? Buna ne dersin? Belki de bunu
META'dan sormalıyım

@Cbhihe Diğer SE sitelerinin kopya hedeflerini göstermemize izin veren bir mekanizmanın farkında değilim. Her neyse, bu çok sık olmaz, bu yüzden muhtemelen birine gerek yoktur.
edwinksl

3
@ anonymous2 neden dünyada bunu yapalım? Buradaki soru burada, bu yüzden kalabilir. Taşınması, bilgileri AU'dan kaldırır ve U&L'ye yeni bir şey eklemez, bu yüzden neden iyi bir şey olacağını anlamıyorum.
terdon

Yanıtlar:


46

--Komut satırı seçeneklerinin sonunu belirtmek için kullanılır. Bu, ile başlayan argümanları kullanmanızı sağlar --. Örneğin, adında bir dosya oluşturursanız --foo:

$ > '--foo'
$ ls
--foo

Ve sonra onu silmeyi deneyin, rmbir argüman verdiğinizi düşüneceksiniz:

$ rm --foo 
rm: unrecognized option '--foo'
Try 'rm ./--foo' to remove the file '--foo'.
Try 'rm --help' for more information.

Bunun bir yolu da kullanmaktır --:

$ rm -- --foo

Bu yaygın bir uygulamadır ve POSIX tarafından önerilmektedir , bu yüzden birçok program tarafından desteklenmektedir.


13
Hiç Bash tarafından uygulanmadı. Bu ise bir özelliğidir rmprogramı ve birçok POSIX uyumlu araçlardan. Kılavuz İlke 10'a bakınız . Aslında, işi yapan Bash'in olmadığını (ve bunun bir anlam ifade etmeyeceğini) kontrol etmek için, sadece küçük bir senaryo oluşturun printf '> %s <\n' "$@"ve onunla başlayın --.
gniourf_gniourf

3
@gniourf_gniourf d'oh! Seçeneklerini yazdıran küçük bir perl betiği yazarak kontrol ettim ve bunu geçip geçmediğinizi görmüyorsunuz --, ama tabii ki, sadece ilgili Perl modülü ( getopts) de destekliyor. Oldukça haklısın, hemen aradım man bash, alıntı yaptığım kısmı gördüm ama "komut satırı seçenekleri" bölümünde olduğunu fark etmedim. Düzeltme için teşekkürler, cevap düzenlendi.
terdon

1

Çoğu komut a komutunu kullanır - komuta daha fazla parametreye farklı davranılması gerektiğini söyler. Bir örnek yukarıda belirtilen rm - --filename'dir. Başka bir örnek, 'startx' gibi bir komut dosyası daha önce her şeyi kendisi yorumlayacak ve bundan sonra X sunucusuna geçirecektir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.