Jika tidak, apakah ada standar de facto? Pada dasarnya saya sedang menulis teks bantuan baris perintah seperti:
usage: app_name [options] required_input required_input2
options:
-a, --argument Does something
-b required Does something with "required"
-c, --command required Something else
-d [optlistitem1 optlistitem 2 ... ] Something with list
Saya membuatnya dari dasarnya hanya membaca teks bantuan dari berbagai alat, tetapi apakah ada daftar pedoman atau sesuatu? Misalnya, apakah saya menggunakan tanda kurung siku atau tanda kurung? Bagaimana cara menggunakan spasi? Bagaimana jika argumennya adalah daftar? Terima kasih!
--help
tampilan seharusnya. Namun kedua pertanyaan tersebut merupakan kandidat yang baik untuk bergabung.Jawaban:
Biasanya, hasil bantuan Anda harus mencakup:
[options]
untuk menunjukkan ke mana opsi pergiarg_name
untuk argumen tunggal yang diperlukan[arg_name]
untuk opsional, argumen tunggalarg_name...
untuk arg yang diperlukan yang mungkin ada banyak (ini jarang terjadi)[arg_name...]
untuk argumen yang nomornya dapat diberikanarg_name
harus berupa deskriptif, nama pendek, dalam huruf kecil, kasus ular-l
) Atau formulir panjang (mis.--list
), Sertakan bersama-sama pada baris yang sama, karena deskripsinya akan samaGREP_OPTS
Perhatikan lebih lanjut bahwa itu adalah bentuk yang baik untuk menerima keduanya
-h
dan--help
memicu pesan ini dan bahwa Anda harus menunjukkan pesan ini jika pengguna mengacaukan sintaks baris perintah, misalnya menghilangkan argumen yang diperlukan.sumber
usage: move (+|-)pixels
yaitu ketika salah satu+
atau-
adalah wajib ? (Saya tahu saya dapat memiliki 2 baris penggunaan tapi saya suka ide menggandakannya dengan setiap argumen baru.) Dapatkah Anda memikirkan contoh dari alat standar?{a|b|c|...}
di bagian bantuan untuk SysV Init script layanan / pemula, yang membutuhkan argumen tunggal yang merupakan salah satu daria
,b
,c
, dll Sebagai contoh,service sddm
tanpa argumen pada sistem saya mencetakUsage: /etc/init.d/sddm {start|stop|status|restart|try-restart|force-reload}
. Jadi kebanyakan orang mungkin akan mengertiusage: move {+|-}pixels}
, terutama jika diberikan contoh:example: move +5
Lihatlah docopt . Ini adalah standar formal untuk mendokumentasikan (dan secara otomatis parsing) argumen baris perintah.
Sebagai contoh...
sumber
Saya pikir tidak ada sintaks standar untuk penggunaan baris perintah, tetapi kebanyakan menggunakan konvensi ini:
Microsoft Command-Line Sintaks , IBM memiliki sejenis Command-Line Sintaks
Text without brackets or braces
Item yang harus Anda ketik seperti yang ditunjukkan
<Text inside angle brackets>
Placeholder yang harus Anda berikan nilainya
[Text inside square brackets]
Item opsional
{Text inside braces}
Set item yang dibutuhkan; Pilih satu
Bilah vertikal
{a|b}
Pemisah untuk barang-barang yang saling eksklusif; Pilih satu
Elipsis
<file> …
Item yang bisa diulang
sumber
Kami menjalankan Linux, OS yang sebagian besar kompatibel dengan POSIX. Standar POSIX seharusnya: Utility Argument Syntax .
-o
.-o argument
atau-oargument
.-lst
setara dengan-t -l -s
.-lst
setara dengan-tls
.-lst
nonoption.--
argumen berakhir pilihan.-
opsi biasanya digunakan untuk mewakili salah satu aliran input standar.sumber
man aptitude
yang output ini (antara lain):aptitude [<options>...] {add-user-tag | remove-user-tag} <tag> <packages>...
. Ini berisi {dan} untuk mengikat perintah wajib alternatif. Saya pikir (dan) dapat digunakan untuk hal yang sama seperti yang digunakan dalam docopt .Microsoft memiliki spesifikasi Command Line Standard mereka sendiri :
sumber
-?
,-Help
,-Version
, dll). Jawaban IMO Steely Wing lebih dekat dengan sasaran.Standar Pengkodean GNU adalah referensi yang bagus untuk hal-hal seperti ini. Bagian ini berkaitan dengan output dari
--help
. Dalam hal ini tidak terlalu spesifik. Anda mungkin tidak dapat salah dengan mencetak tabel yang menunjukkan opsi pendek dan panjang dan deskripsi ringkas. Cobalah untuk mengatur jarak antara semua argumen agar mudah dibaca. Anda mungkin ingin memberikanman
halaman (dan mungkininfo
manual) untuk alat Anda untuk memberikan penjelasan yang lebih rumit.sumber
ya, Anda berada di jalur yang benar.
ya, tanda kurung siku adalah indikator umum untuk item opsional.
Biasanya, seperti yang telah Anda sketsa, ada ringkasan commandline di bagian atas, diikuti oleh detail, idealnya dengan sampel untuk setiap opsi. (Contoh Anda menunjukkan baris di antara setiap deskripsi opsi, tapi saya berasumsi itu adalah masalah pengeditan, dan bahwa program Anda yang sebenarnya menampilkan daftar opsi indentasi tanpa ada baris kosong di antaranya. Ini akan menjadi standar untuk diikuti dalam hal apa pun.)
Tren yang lebih baru, (mungkin ada spesifikasi POSIX yang membahas hal ini?), Adalah penghapusan sistem halaman manual untuk dokumentasi, dan termasuk semua informasi yang akan ada di halaman manual sebagai bagian dari
program --help
output. Tambahan ini akan mencakup deskripsi yang lebih panjang, konsep yang dijelaskan, sampel penggunaan, batasan dan bug yang diketahui, cara melaporkan bug, dan mungkin bagian 'lihat juga' untuk perintah terkait.Saya harap ini membantu.
sumber
-h|--help
harus hanya referensi singkat. Anda juga dapat memasukkan dokumentasi yang lebih komprehensif (tutorial, dll ...) di halaman HTML atau info. Tapi manualnya harus ada di sana!someCommand --help
di shell saya, semua yang saya butuhkan adalah pengingat kecil dari urutan tepat argumen masuk, bukan petak besar teks yang mengisi layar, mengharuskan saya menyalurkannya keless
hanya untuk melihat semua itu. Halaman manual harus berada di tempat Anda meletakkan deskripsi panjang yang terperinci, bukan teks bantuan.Saya akan mengikuti proyek resmi seperti tar sebagai contoh. Menurut pendapat saya, bantuan. harus sesederhana dan sejelas mungkin. Contoh penggunaannya juga bagus. Tidak ada kebutuhan nyata untuk "bantuan standar".
sumber
tar
... jika seseorang akan membuat utilitas utilitas all-do seperti tar, harap membuat sakelar pendek mudah diingat, dan sertakan bagian "contoh penggunaan" di--help
. 90% dari waktu saya melihat instruksi tar itu untuk mengekstraksi yang sederhanatar.gz
.