DÜZENLEME: Bu stilin bir GNU-izm olduğu ve GNU tabanlı olmayan Unix'lerin tek kesikli bir sözdizimi (özellikle OS X ve BSD varyantları) kullanma eğiliminde olduğu belirtildi.
GNU-ism statüsüne rağmen, yeni yazılmış birçok Unix tarzı program bu stili kullanır:
--long-option
uzun seçenek adları için,
-s
kısa (tek karakter) seçenekler için,
-abc
bağımsız değişkenler olmadan birden fazla kısa seçenek için (seçenek başına bir karakter).
- Bağımsız değişkenli seçenekler:
--long arg
veya --long=arg
uzun seçenekler için,
-s arg
, -sarg
veya (isteğe bağlı olarak) -s=arg
kısa seçenekler için. Yalnızca sonuncunun bir argümanı olduğu sürece, bu diğer kısa seçeneklerle birleştirilebilir .
- Aynı "anlamsal" seçenek, çoğunlukla kısa (yazmak daha hızlı) ve uzun (hatırlanması daha kolay) olan birkaç takma ada sahip olabilir.
Herhangi bir süre için bir Linux kabuğu kullanan herkes bu stile 1 aşina olmalıdır , bu yüzden tarafında en az sürpriz ilkesine sahiptir. Uzun seçeneklerle belirsiz olmadan çoklu kısa seçeneklerin gruplandırılmasına izin vermek de güzel.
1 Örneğin, (benim Linux makine) bu stili kullanan programlardan bazıları: ls
, grep
, man
, sed
, bash
, vb ( DÜZENLEME: bunlar, BSD ve OS X makineleri bu stili kullanmayın olsa görünüşte GNU-izm vardır)
Sizin için bu ayrıştırma bakabilirim birkaç kütüphaneler vardır (çoğu olmanın iyi bilinen GNU uygulanması ait getopt ) sadece uzun ve kısa seçenekler onlar bir argüman da, ister mevcut ve ne zaman bir ne yapacağını belirtmek için sana ihtiyacım, seçeneği bulundu. (Ve elbette, konumsal argümanlar için ne yapmalı, yani başlangıç -
seçenekleriyle başlamayan ve önceki seçeneklere argüman olmayanlar)
find
yeni bir komut satırı sözdizimi kullanmak için kolayca değiştirilemeyen çok eski bir programdır (veya belki de daha olası: çok eski bir programın yeniden yazılmış bir sürümüdür). Çok fazla komut dosyası bozulur ve eski sözdiziminde kullanılan çok fazla kullanıcı şikayet eder. javac
muhtemelen gcc
tarihsel nedenlerden dolayı eski bir sözdizimini takip eden arkadaşlar ve arkadaşlardan etkilenmişti .