Yaygın bir standart yoktur. Örneğin GNU programlarında bir miktar tutarlılık var, ancak her programın belgelerini kontrol etmeniz gerekiyor.
Vikipedi alıntı , benimki vurgu:
Unix benzeri sistemlerde, ASCII kısa çizgi – eksi genellikle seçenekleri belirlemek için kullanılır. Karakteri genellikle bir veya daha fazla harf izler . Harfsiz tek başına kısa çizgi eksi olan bir argüman genellikle bir programın standart girdiden gelen verileri işlemesi veya standart çıktıya veri göndermesi gerektiğini belirtir. Daha açıklayıcı seçenek adlarının kullanıldığı "uzun seçenekler" i belirtmek için bazı programlarda iki kısa çizgi eksi karakteri (-) kullanılır . Bu GNU yazılımının ortak bir özelliğidir.
Genellikle, tire, önceden tanımlanmış bir argüman gösterir. Bunları, örneğin dosya adlarından veya argüman olarak kullanabileceğiniz diğer etiketlerden ayırmak için kullanıldığını düşünüyorum. Yine de her zaman durum böyle değil (aşağıya bakınız).
Sık sık, hem ls hem de kısa olan seçenek olarak aynı argümanı bulacaksınız .
Bazı programlar tek karakterli seçenekler için tek bir tire ve çok karakterli seçenekler için iki kısa çizgi kullanır, ancak tümü değil (GNU find
akla gelir). Bazı programlarda isteğe bağlı tireler vardır veya bunları tamamen atlarlar ( tar
veya BSD ps
akla gelir).
Bazen uzun seçenekler ( --foo
) bağımsız değişkenler gerektirir, kısa seçenekler ( -f
) ise (veya en azından belirli bir varsayılan değişken anlamına gelir).
Kısa seçenekler (örneğin cut -d ' '
) argümanlara sahip olabilir, uzun seçenekler (örn. ls --all
) Mutlaka buna sahip değildir.
Bir programın belirli bir davranışını ayarlamak için, bazen kısa bir seçenek kullanmanız gerekir, diğerleri için uzun bir seçenek kullanmanız gerekir ve bazıları için bir seçeneğiniz vardır.
İlgili bir notta, bazı programlar bir seçenek ile argümanı arasında boşluk bırakmazken, diğerleri bunu yapamaz.
Başlangıçta yazdığım gibi, ortak bir davranış veya standart yoktur. Genellikle, argüman ayrıştırma için kullanılan aynı kütüphaneye benzer davranışları takip edebilirsiniz, ancak muhtemelen bunu bulmak için kaynakları okumak istemezsiniz.
Bir programın argüman sözdizimini diğerinin ifadesinden gerçekten çıkaramazsınız.
Ayrıca, Windows'u göz önünde bulundurursanız, daha da kötüleşir: Windows komut satırı, geleneksel olarak kullanımları çağırırken /f
(en azından çoğu zaman, tek karakterler), :
seçenekler ve değerleri arasındaki ayırıcı olarak seçenekler için (bkz. Örneğin, burada ); platformlar arası yardımcı programlar yaygındır (bahsettiğinizler gibi) ve yukarıda belirtilen tüm tutarsızlıklar ile argümanlar için daha yaygın tire sözdizimini beraberinde getirir.
-i
vs--input
ya-n
--dry-run
.