Bagaimana menafsirkan sintaks perintah "penggunaan" bash?

11

Bagaimana tepatnya Anda harus menginterpretasikan output dari perintah "use" output, dalam bash misalnya.

Misalnya, di OS X saya, cpberi saya

usage: cp [-R [-H | -L | -P]] [-fi | -n] [-apvX] source_file target_file
       cp [-R [-H | -L | -P]] [-fi | -n] [-apvX] source_file ... target_directory
  • Apa yang ditunjukkan oleh opsi bersarang, seperti -H di dalam -R?
  • Apakah huruf besar dan kecil memiliki arti?
  • Kapan argumen opsional, diperlukan?

Saya perlu menerapkan baris perintah telnet terhadap program saya dan saya ingin meluruskan ini.

raoulsson
sumber

Jawaban:

15

Bagi siapa pun yang mencoba memahami apa arti output penggunaan, cara terbaik adalah man man.

serius :-) Luangkan waktu untuk mempelajari konvensi, itu sangat membantu.

   The following conventions apply to the SYNOPSIS section and can be used
   as a guide in other sections.

   bold text          type exactly as shown.
   italic text        replace with appropriate argument.
   [-abc]             any or all arguments within [ ] are optional.
   -a|-b              options delimited by | cannot be used together.
   argument ...       argument is repeatable.
   [expression] ...   entire expression within [ ] is repeatable.
Justin
sumber
+1 menghapus pos saya sebagai mubazir.
Warner
man manpada CentOS 6.6 tidak memiliki bagian ini; versi man manMac OS X 10.7.4 juga tidak. Di mana saya bisa menemukannya?
Wildcard
Menemukannya, ada man man-pagesdi CentOS dan man manpagesdi Mac OS X (yang menggunakan perintah BSD).
Wildcard
Jawaban ini, dan juga man manperintah sepertinya tidak mencakup kasus-kasus di mana input harus menjadi salah satu item dalam enumerasi. Misalnya<env> - must be one of [dev | test | uat | perf | prod]
Addison
2

Pertama-tama, meskipun ada konvensi umum, mereka tidak diterapkan secara seragam.

  • Dalam hal ini, itu mengatakan bahwa jika Anda menggunakan -R(menunjukkan "rekursi"), maka Anda dapat menggunakan salah -H, -Latau -P. Jika Anda tidak menggunakan -R, maka opsi itu tidak relevan.
  • Ya, kasus hampir selalu penting. Jadi biasanya -hdan -Hmelakukan hal yang sama sekali berbeda.
  • Tanda kurung umumnya menunjukkan bahwa opsi atau argumen "opsional". (Hal-hal dengan tanda hubung di depan mereka adalah "opsi", kata-kata tanpa tanda hubung adalah argumen.) Tanpa tanda kurung, opsi atau argumen pada umumnya diperlukan. Dalam contoh Anda, "source_file" dan "target_directory" diperlukan. "..." menunjukkan bahwa argumen sebelumnya dapat diulang.

Poin lain yang perlu diperhatikan:

  • Bilah vertikal menunjukkan "ATAU". Jadi [-fi | -n]menunjukkan Anda dapat menggunakan salah satu -fdan / atau -itetapi tidak dalam kombinasi dengan -n.
  • Opsi yang dikelompokkan dalam tanda kurung menunjukkan Anda dapat menggunakannya. Jadi, [-apvX]Anda dapat menggunakan kombinasi opsi tersebut. Mereka bahkan tidak perlu dihancurkan bersama. Jadi -a -v -pakan menjadi kombinasi yang valid.
Insyte
sumber