Pertanyaan ini mungkin telah ditanyakan sebelum ...
Mengapa flag seperti --recursive memiliki dua strip bukan hanya -recursive? Saya tahu bahwa versi singkatnya hanya -r. Adakah jumlah karakter maksimum yang dimiliki oleh bendera dengan satu tanda hubung sebelum membutuhkan dua tanda hubung?
command-line
flag
HeavenlyHarmony
sumber
sumber
Jawaban:
Masalahnya adalah Anda bisa mengatakan hal-hal seperti
ls -laR
; itu setara denganls -l -a -R
. Begitu-recursive
akan diartikan sebagai-r -e -c -u -r -s -i -v -e
.sumber
Tidak ada aturan pasti untuk menggunakan dasbor tunggal atau ganda sebagai opsi untuk suatu program. Jika seseorang memutuskan untuk menangani opsi sendiri, ia dapat mengimplementasikan apa pun yang diinginkannya. Tetapi jika programmer tidak mencari PITA dan ingin program menggunakan cara umum yang dapat dikenali dengan baik maka orang akan menggunakan fungsi standar
getopt/getopt_long
yang menangani opsi panjang (string panjang seperti yang Anda minta) sebagai tanda hubung ganda, opsi pendek (karakter tunggal) diawali dengan tanda hubung tunggal. Fungsinyagetopt
bagian dari<unistd.h>
dalam bahasa C. Fungsi yang sama dapat digunakan pada sistem berbasis Unix di shell standarman getopt 1
yang menggunakan parsing opsi tunggal dan ganda putus-putus (panjang).Jika seseorang menggunakan fungsi yang dijelaskan di atas maka opsi pendek hanya dapat memiliki satu karakter tunggal.
sumber