Bazen görüyorum -h
ki bir uygulama için bir el kitabı, bazen --help
de el kitabında buluyorum .
Onların arasındaki fark ne? Bununla ilgili herhangi bir tarih / hikaye var mı?
Bazen görüyorum -h
ki bir uygulama için bir el kitabı, bazen --help
de el kitabında buluyorum .
Onların arasındaki fark ne? Bununla ilgili herhangi bir tarih / hikaye var mı?
Yanıtlar:
Unix komutları ile ilgili dokümantasyon için standart yer , komut aracılığıyla erişilen unix el kitabıdır (aka "man sayfaları") ( bölüm 1 ve 8 ) man
. Örneğin, grep
komutun belgelerini almak için kullanırsınız man grep
.
Bazı komutlar ayrıca-h
veya gibi bir seçenekle çalıştırıldığında bazı dahili belgeler de sağlar --help
. Bu neredeyse standart değildir ve bunun nasıl sağlanıp sağlanmadığı komutlar arasında büyük ölçüde değişiklik gösterir. Arasındaki fark gelince -h
ve --help
bu çoğunlukla tarihsel bulunuyor. Unix'deki komut seçenekleri için "standart", on yıllardan biraz daha fazla bir süre önce gelişti.
Unix ilk "doğduğunda" olduğunda, farklı komutlar tamamen farklı formatlarda seçenekler aldı; Bu ilk kaos, tar
(ilk argümanının başlayıp başlamaması seçenekleri olduğunu varsayma eğiliminde olduğu gibi -
) ve dd
(onun uzun seçenekler gibi tüm argümanlarını olmayan bir şekilde ele alır ) gibi birkaç komutla hayatta kalır --
.
Ancak standartların ortaya çıkması uzun sürmedi: seçenekler tek bir kısa çizgi ile başladı ve tek bir harf veya başka bir karakterden oluşuyordu ve herhangi bir konumsal (seçenek dışı) parametreden önce gelmeleri gerekiyordu. Bu, pek çok komutun herhangi bir yerleşik yardım içermesinden önceydi, bu nedenle bu dönemdeki komutlar genellikle -h
yardımdan başka bir şey için kullanılır (örneğin, grep -h
dosya adlarını yazdığı yerde yazmaz grep
).
Daha yakın zamanlarda, bu "standart" a bazı eklemeler ortaya çıkmıştır: çift çizgi ile başlayan uzun seçenekler (örn. --help
), Seçeneklerin konumsal parametrelerin arasına veya arasına girmesine izin vermek ve --
seçeneklerin sonunu belirtmek için kullanmak (bundan sonra her şey. tire ile başlasa bile, konumsal bir parametredir). Bazı komutlar bu yeni seçenek stillerini kullanır, bazıları kullanmaz.
Ayrıca son zamanlarda, bazı komutlar yerleşik yardım ekledi / ekledi. Bunun nasıl başlatılacağı, temel olarak, komutun geliştiricisinin (lerinin) kaprisine ve -h
hali hazırda başka anlamlara sahip olup olmadığına (gibi durumlarda grep
) bağlıdır. Bu yüzden bazı komutlar -h
yardım ister --help
, bazıları hem ikisini hem de hiçbirini almaz.
İronik olarak, bir komut için yerleşik yardımın nasıl alınacağını öğrenmenin en iyi yolu (varsa), kılavuz sayfasını okumaktır. İşte bir alıntı man grep
:
-H Always print filename headers with output lines.
-h, --no-filename
Never print filename headers (i.e. filenames) with output lines.
--help Print a brief help message.
Genelde --help
kullanılır, ancak çalışırsa -h
geliştiriciler yazmayı daha hızlı hale getirmek için muhtemelen dahil etmişlerdir.
Ancak standart değildir ve komuta çok bağlıdır - vim
örneğin hem kullanır hem de bash
sadece kullanır --help
.
Bu nedenle, eğer Linux kullanıyorsanız man command
, genellikle kesin yardım rehberidir.
Komut satırı argümanları hakkında daha fazla bilgi için bu cevabı okumanın keyfini de çıkarabilirsiniz .
-h
kısa özellik, bazen çok uzun bir komut (lar) yazan kullanıcının zaman kazanmasını sağlamaktır;
--help
öznitelik bash scriptleri için tasarlanmıştır (birçok kullanıcı tarafından anlaşılması kolay olmalıdır). Bu örnekte -h
açıktır, ancak bazen çok fazla sayıda özellik vardır, bu nedenle -j
, -i
-g
bash betiğinde doğrudur - bash betiği doğru şekilde yürütülür, ancak işteki iş arkadaşınız muhtemelen sizi öldürür :)
Gerçekten programa bağlı. Aralarında fark olmayabilir. --help, -h'den daha ayrıntılı metin sağlayabilir.