Konvensi / standar tentang penggunaan kurung kurawal di sekitar opsi


10

Halaman manual untuk tar di bagian Arch Linux SYNOPSIS dimulai dengan:

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

Saya benar-benar mengerti bahwa dalam situasi ini itu berarti bahwa salah satu opsi di kurung kurawal harus diberikan karena dikatakan lebih jauh di halaman manual. Apakah ada semacam standar atau konvensi tentang penggunaan {} di sekitar daftar opsi yang saling eksklusif?

Yang bisa saya temukan adalah tutorial grup Pengguna padaman tahun 1998 di mana ia mengatakan:

Beberapa opsi akan memiliki daftar pilihan yang terbatas. Daftar pilihan akan dipisahkan koma dan diletakkan di antara kurung kurawal.

{choice1, choice2} {ya, tidak}

Sepertinya setiap konvensi (seperti ini dari Grup Terbuka ) atau halaman manual hanya menjelaskan tanda kurung ([) atau garis vertikal (|).


1
Biasanya saya akan berpikir <>sebagai wajib, tapi saya kira itu dicadangkan untuk argumen yang bertentangan dengan opsi. Counter: Versi Ubuntu dari GNU tar manpage ( manpages.ubuntu.com/manpages/trusty/en/man1/tar.1.html , untuk satu) tidak menggunakan formulir ini, begitu pula linux.die.net/man/ 1 / tar atau Debian . Saya pikir Anda mungkin melihat halaman manual BSD tar, jadi jika ada konvensi, itu mungkin hal BSD.
muru

upstream untuk arch man-pages adalah man7.org , halaman tar sama persis dengan man7.org/linux/man-pages/man1/tar.1.html .
umbasa

2
Saya selalu berpikir bahwa sintaks baris perintah keluar dari ENBF , tetapi {} dalam ENBF berarti sebaliknya (pengulangan argumen, bukan satu pilihan yang mungkin seperti dalam situasi tar). Saya mencoba sintaks google {} dengan tujuan untuk windows dan sepertinya {} sangat umum di windows, bahkan memiliki deskripsi tentang technet . Sigh, Mungkin aku berusaha terlalu keras untuk menemukan kebenaran.
umbasa

Jawaban:


5

Ini adalah pertanyaan yang bagus (dan masih terbuka 3 tahun kemudian). Saya pikir jawabannya sekarang secara resmi dijawab dalam dokumen Google ini :

  • Item yang diperlukan: tidak ada backet
  • Opsional item yang saling eksklusif: kurung kotak, dibatasi pipa
  • Diperlukan item yang saling eksklusif: kurung kurawal, pipa dipisahkan

1

Apakah ada semacam standar atau kebiasaan menggunakan {} di sekitar daftar opsi yang saling eksklusif?

Saya sedang meneliti pentingnya makna opsi yang ditentukan dalam kurung kurawal ({}) vs opsi yang ditentukan dalam kurung siku ([]) ketika saya menemukan pertanyaan Anda. Itu adalah satu-satunya sumber informasi yang menurut saya berguna sehubungan dengan apa yang ingin saya pahami, yaitu mengapa opsi-opsi tersebut dinyatakan dalam kurung kurawal.

Seperti yang Anda tulis:

Saya sangat mengerti bahwa dalam situasi ini itu berarti bahwa salah satu dari mereka harus diberikan ...

Membaca halaman manual untuk netstat Saya sampai pada pemahaman bahwa opsi adalah opsi yang tersedia untuk digunakan dengan perintah yang harus digunakan / dinyatakan sebelum menggunakan opsi lain yang mungkin terdaftar dengan perintah DAN persis hanya salah satu opsi yang terdaftar dipisahkan oleh batang vertikal dapat digunakan.

Contoh di atas dapat ditemukan di halaman manual untuk perintah netstat:

netstat {--route | -r} [address_family_options] [--extend | -e [- extended | -e]] [--verbose | -v] [--numeric | -n] [--numeric-hosts ] [- port numerik] [- port numerik] [- kontinu | -c] [penundaan]

Sumber: netstat (8) | Halaman manual Linux

Pada dasarnya seseorang dapat menggunakan tepat salah satu dari --route atau -r (artinya sama) tetapi opsi harus mendahului opsi yang terdaftar lainnya.

Saya hanya meluangkan waktu untuk menanggapi pertanyaan Anda karena pertanyaan itu tampaknya tetap terbuka tetapi bagi saya Anda menjawab pertanyaan Anda sendiri :)

Sebuah konvensi hanyalah sebuah praktik yang sudah mapan. Apakah secara eksplisit dinyatakan atau tidak, fakta bahwa Anda menemukan dokumen pria secara teratur dalam format ini menunjukkan bahwa konvensi (dengan asumsi saya menyatakannya dengan benar di atas) sudah mapan.

Apakah ada "standar"? Bagi saya itu tergantung pada definisi apa yang ingin Anda adopsi untuk "standar". Bagi saya ada sedikit, tidak, perbedaan antara makna kata-kata konvensi dan standar, dalam arti bahwa kita menggunakan istilah di sini. Dalam pengertian ini saya menganggap kedua kata itu berarti sesuatu di sepanjang garis "sesuatu yang disepakati bersama dan digunakan dan diterima sebagai norma".

Terima kasih atas waktu Anda dalam membantu saya memahami konvensi / standar ini.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.