Seçenekler etrafında kıvırcık parantez kullanma konvansiyonu / standardı


10

Arch Linux SYNOPSIS bölümündeki tar için man sayfası şununla başlar:

tar {A|c|d|r|t|u|x}[GnSkUWOmpsMBiajJzZhPlRvwo] [ARG...]

Bu durumda kıvırcık parantezlerdeki seçeneklerden birinin tam olarak verilmesi gerektiği anlamına geldiğini anlıyorum, çünkü man sayfasında daha aşağıda yazıyor. Karşılıklı olarak ayrıcalıklı seçenekler listesinin etrafında {} kullanma konusunda bir tür standart veya sözleşme var mı?

Tüm bulabildiğim 1998'den beri Kullanıcının grup dersiman olduğu yer:

Bazı seçeneklerin sınırlı bir listesi vardır. Seçeneklerin listesi virgülle ayrılır ve kaşlı ayraçlar arasına yerleştirilir.

{seçim1, seçim2} {evet, hayır}

Her konvansiyon ( Açık Grup'taki gibi ) veya kılavuz sayfasında sadece köşeli parantezler ([) veya dikey çizgiler (|) açıklanmaktadır.


1
Genellikle <>zorunlu olarak düşünürdüm , ama sanırım bu seçeneklerin aksine argümanlara ayrıldı. Sayaç: Ubuntu'nun GNU tar manpage sürümü ( manpages.ubuntu.com/manpages/trusty/en/man1/tar.1.html , bir tanesi) bu formu kullanmıyor, linux.die.net/man/ 1 / katran veya Debian . Bence BSD tar'ın man sayfasına bakıyorsunuz, bu yüzden bir sözleşme mevcutsa, BSD olayı olabilir.
muru

arch man-pages için yukarı akış man7.org , katran sayfası tam olarak aynı man7.org/linux/man-pages/man1/tar.1.html .
umbasa

2
Her zaman komut satırı sözdiziminin ENBF'den geldiğini düşündüm , ancak ENBF'deki {} tam tersi anlamına geliyor (katran durumunda olduğu gibi olası bir seçenek yerine argümanın tekrarı). Google {} sözdizimini windows amacı ile denedim ve {} pencerelerde çok yaygın gibi görünüyor, hatta technet üzerinde bir açıklaması var . Ah, Belki de gerçeği bulmak için çok uğraşıyorum.
umbasa

Yanıtlar:


5

Bu harika bir soru (ve yıllar sonra hala açık). Cevabın şu anda bu Google dokümanında resmen yanıtlandığını düşünüyorum :

  • Gerekli öğeler: parantez yok
  • İsteğe bağlı karşılıklı özel öğeler: köşeli parantez, boru ile sınırlandırılmış
  • Karşılıklı olarak ayrı ayrı gerekli öğeler: kıvırcık parantez, boru sınırlandırılmış

1

Karşılıklı olarak ayrıcalıklı seçenekler listesinde {} kullanma konusunda bir tür standart veya sözleşme var mı?

Sorunuzla karşılaştığımda kıvırcık parantezlerde ({}) belirtilen seçeneklerin köşeli parantezlerde ([]) ve seçeneklerin anlamının önemini araştırıyordum. Anlamaya çalıştığım şeyle ilgili olarak faydalı bulduğum tek bilgi kaynağıydı, yani neden kıvırcık parantezlerde belirtilen seçenekler.

Yazdığınız gibi:

Bu durumda bunun tam olarak bir tanesinin verilmesi gerektiği anlamına geldiğini mükemmel bir şekilde anlıyorum ...

Netstat için man sayfasını okuma Komutla listelenebilecek diğer seçeneklerin kullanılmasından önce VE kullanılması gereken bir komutla, seçeneklerin kullanılabilmesi / belirtilmesi gereken seçeneklerin VE tam olarak listelenen seçeneklerden sadece biri olduğunu anladım. dikey çubuk ile ayrılmış kullanılabilir.

Yukarıdakilere bir örnek netstat komutunun kılavuz sayfasında bulunabilir:

netstat {--route | -r} [adres_family_options] [--extend | -e [- genişlet | -e]] [--verbose | -v] [- sayısal | -n] [- sayısal-hosts ] [- sayısal bağlantı noktaları] [- sayısal bağlantı noktaları] [- sürekli | -c] [gecikme]

Kaynak: netstat (8) | Linux kılavuz sayfası

Özünde, tam olarak --route veya -r (biri aynı anlama gelir) birini kullanabilir, ancak seçenek listelenen diğer seçeneklerden önce gelmelidir.

Sadece sorunuzu yanıtlamak için zaman ayırdım çünkü soru açık kalıyor gibi görünüyor, ancak bana öyle geliyor ki kendi sorunuzu cevapladınız :)

Bir sözleşme sadece yaygın olarak kurulmuş bir uygulamadır. Açıkça belirtilmiş olsun ya da olmasın, adam belgelerini bu formatta düzenli olarak bulmanız, sözleşmenin (yukarıda doğru bir şekilde belirttiğim varsayılarak) kesin bir şekilde kurulmuş olduğunu gösterir.

"Standart" var mı? Bana göre bu, "standart" için hangi tanımlamayı kullanmak istediğinize bağlıdır. Bana göre burada terim kullandığımız anlamında, konvansiyon ve standart kelimelerinin anlamı arasında çok az fark vardır. Bu anlamda, iki kelimeyi "karşılıklı olarak üzerinde anlaşılan, kullanılan ve norm olarak kabul edilen bir şey" çizgisi boyunca bir şey ifade ettim.

Bu sözleşmeyi / standardı anlamama yardımcı olduğunuz için teşekkür ederiz.

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.