GNU/Linux >> Belajar Linux >  >> Linux

Apa perbedaan antara satu garis putus-putus dan dua garis untuk parameter prompt perintah?

Tidak ada standar yang tersebar luas. Ada beberapa konsistensi mis. dalam program GNU, tetapi Anda perlu memeriksa dokumentasi setiap program.

Mengutip Wikipedia, tekankan pada saya:

Dalam sistem mirip Unix, tanda hubung–minus ASCII umumnya digunakan untuk menentukan opsi. Karakter biasanya diikuti oleh satu atau lebih huruf . Argumen yang merupakan satu tanda hubung-minus dengan sendirinya tanpa huruf apa pun biasanya menentukan bahwa suatu program harus menangani data yang berasal dari input standar atau mengirim data ke output standar. Dua karakter tanda hubung–minus ( -- ) digunakan pada beberapa program untuk menentukan "opsi panjang" di mana nama opsi yang lebih deskriptif digunakan . Ini adalah fitur umum perangkat lunak GNU.

Biasanya, tanda hubung menunjukkan argumen yang telah ditentukan sebelumnya. Saya pikir itu digunakan untuk membedakan mereka dari mis. nama file atau label lain yang mungkin Anda gunakan sebagai argumen. Namun, tidak selalu demikian (lihat di bawah).

Anda akan sering menemukan argumen yang sama tersedia sebagai opsi pendek dan panjang, seperti mis. di ls.

Beberapa program menggunakan tanda hubung tunggal untuk opsi satu karakter, dan dua tanda hubung untuk opsi multi-karakter, tetapi tidak semua (GNU find terlintas dalam pikiran). Beberapa program memiliki tanda hubung opsional atau melewatkannya sama sekali (tar atau BSD ps datang ke pikiran).

Terkadang opsi panjang (--foo ) memerlukan argumen, sedangkan opsi pendek (-f ) jangan (atau setidaknya menyiratkan argumen default tertentu).

Opsi singkat (mis. cut -d ' ' ) dapat memiliki argumen, sedangkan opsi panjang (mis. ls --all ) belum tentu memilikinya.

Untuk menyetel perilaku tertentu dari suatu program, terkadang Anda perlu menggunakan opsi pendek, untuk yang lain Anda perlu menggunakan opsi panjang, dan untuk beberapa lainnya Anda memiliki pilihan.

Pada catatan terkait, beberapa program tidak dapat menangani spasi kosong antara opsi dan argumennya, sementara yang lain tidak.

Seperti yang saya tulis di awal, tidak ada perilaku atau standar umum. Sering kali Anda dapat melacak perilaku serupa ke pustaka yang sama yang digunakan untuk penguraian argumen, tetapi Anda mungkin tidak ingin membaca sumber untuk mengetahuinya.

Anda benar-benar tidak dapat menyimpulkan sintaks argumen satu program dari yang lain.

Jika Anda juga mempertimbangkan Windows, itu menjadi lebih buruk:Sementara panggilan baris perintah Windows secara tradisional menggunakan /f (setidaknya sebagian besar waktu, karakter tunggal) untuk opsi, dengan : sebagai pemisah antara opsi dan nilainya (lihat misalnya di sini); utilitas lintas platform tersebar luas (seperti yang Anda sebutkan) dan menyertakan sintaks tanda hubung yang lebih umum untuk argumen, dengan semua ketidakkonsistenan yang disebutkan di atas.


Lakukan saja ls --help dan lihat opsinya; itu harus jelas bagi Anda.

Ini sama sekali tidak ada hubungannya dengan parameter. Banyak opsi memiliki bentuk pendek dan panjang, dan banyak yang memiliki satu dan bukan yang lain.

Dan juga, mengenai parameter, hanya saja dalam bentuk panjang ketika mereka mengambil parameter sepertinya selalu sama dengan. Tapi yang jelas pendek bisa mengambil parameter sama banyaknya; hanya saja mereka tidak menggunakan persamaan.

Ini adalah kutipan dari ls --help (man ls memberikan informasi yang setara). Perhatikan bagaimana beberapa memiliki bentuk panjang tanpa bentuk pendek (--author , --block-size ), beberapa memiliki bentuk pendek tanpa bentuk panjang (-c , -f , -g ), dan beberapa memiliki bentuk panjang dan bentuk pendek (-A /--almost-all , -b /--escape ).

 -a, --all                  do not ignore entries starting with .
 -A, --almost-all           do not list implied . and ..
     --author               with -l, print the author of each file
 -b, --escape               print octal escapes for nongraphic characters
     --block-size=SIZE      use SIZE-byte blocks
 -B, --ignore-backups       do not list implied entries ending with ~
 -c                         with -lt: sort by, and show, ctime (time of last
                              modification of file status information)
                              with -l: show ctime and sort by name
                              otherwise: sort by ctime
 -C                         list entries by columns
     --color[=WHEN]         control whether color is used to distinguish file
                              types.  WHEN may be `never', `always', or `auto'

Ini adalah konvensi yang berasal dari *nix. Tanda hubung ganda mendahului opsi saat ditulis secara lengkap , , sementara tanda hubung tunggal mendahului opsi saat ditulis dalam bentuk singkat . Misalnya ls --all --l , dapat disingkat menjadi ls -al . Seperti yang terlihat, tidak semua opsi memiliki padanan satu huruf, meskipun biasanya lebih banyak digunakan.

Apakah opsi mengambil argumen tidak benar-benar membuat perbedaan - itu bisa mengambilnya, atau tidak mengambilnya, terlepas dari cara Anda memasukkan opsi.

Saat menulisnya untuk penggunaan satu kali, itu tidak masalah, tetapi saat menulis perintah misalnya dalam file .alias, biasanya menggunakan bentuk lengkap. Murni untuk kemudahan membaca bagi orang berikutnya.


Linux
  1. Apa perbedaan antara opsi -i dan -U yang digunakan dalam perintah rpm di Linux?

  2. Apa perbedaan antara strtok_r dan strtok_s di C?

  3. Apa perbedaan antara fsck dan e2fsck?

  1. Apa perbedaan antara &> dan >&di bash?

  2. Apa perbedaan antara adduser dan useradd?

  3. Apa perbedaan antara `su -` dan` su --login`?

  1. Apa perbedaan antara InnoDB dan MyISAM?

  2. Apa perbedaan antara perintah locate dan find di Linux?

  3. Apa perbedaan antara unlink dan rm?