Apa artinya "-" (tanda hubung ganda)? (Juga dikenal sebagai "bare double dash")


Jawaban:


583

Lebih tepatnya, tanda hubung ganda ( --) digunakan dalam perintah bash built-in dan banyak perintah lain untuk menandai akhir opsi perintah, setelah itu hanya parameter posisi yang diterima.

Contoh penggunaan: katakanlah Anda ingin grep file untuk string -v- biasanya -vakan dianggap opsi untuk membalikkan makna yang cocok (hanya tampilkan baris yang tidak cocok), tetapi dengan --Anda dapat grep untuk string -vseperti ini:

grep -- -v file

3
Terutama di Bash setbuilt-in, di mana itu benar-benar diperlukan.
l0b0

10
--berfungsi untuk memisahkan opsi dari ekspresi reguler grep, tetapi cara kanonik adalah dengan menggunakan -e/ --regexp.
l0b0

5
@ l0b0: pola untuk mencari biasanya adalah salah satu dari parameter posisi, sehingga bisa pas setelah --, meskipun Anda benar dalam mencatat bahwa contoh saya di atas juga dapat ditulis sebagai grep -e -v file(walaupun itu sangat membingungkan).
Guss

2
Tidak semua bashperintah bawaan menerima --sebagai akhir dari penanda opsi. [dan echojangan misalnya ( salah satu alasan echotidak dapat digunakan dengan andal ).
Stéphane Chazelas


39

Dalam man bashkita dapat membaca di Shell Built Perintah bagian:

Kecuali disebutkan sebaliknya, setiap perintah builtin didokumentasikan dalam bagian ini sebagai menerima opsi yang didahului oleh -accepts -- untuk menandakan akhir dari opsi .

The :, true, false, dan testbuiltin tidak menerima pilihan dan tidak memperlakukan --khusus. The exit, logout, break, continue, let, dan shiftbuiltin menerima dan argumen proses dimulai dengan -tanpa memerlukan --. Builtin lain yang menerima argumen tetapi tidak ditentukan sebagai opsi menerima menafsirkan argumen dimulai dengan -sebagai opsi yang tidak valid dan perlu --untuk mencegah interpretasi ini.

Catatan yang echotidak menafsirkan --berarti akhir dari opsi.


2
+1 untuk referensi man bash(perhatikan sendiri untuk lain kali:).
user3773048

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.