it-swarm-id.com

Apa artinya "-" (tanda hubung ganda)?

Saya sudah melihat -- digunakan dalam perintah compgen.

Sebagai contoh:

compgen -W "foo bar baz" -- b

Apa arti dari -- di sana?

518
dogbane

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

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

grep -- -v file
631
Guss

Di man bash kita dapat membaca di bagian Perintah Shell Builtin :

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

:, true, false, dan test bawaan tidak menerima opsi dan tidak memperlakukan -- khusus. The exit, logout, break, continue, let, dan shift builtins menerima dan memproses argumen yang dimulai dengan - tanpa membutuhkan --. Builtin lain yang menerima argumen tetapi tidak ditentukan sebagai opsi menerima menafsirkan argumen dimulai dengan - sebagai opsi yang tidak valid dan membutuhkan -- untuk mencegah interpretasi ini.

Perhatikan bahwa echo tidak menafsirkan -- berarti akhir dari opsi.

48
kenorb

Ini menandai akhir dari daftar parameter (opsi).

47
polemon

POSIX.1-2017

12.2 Pedoman Sintaks Utilitas

Pedoman 10:

Pertama -- argumen yang bukan opsi-argumen harus diterima sebagai pembatas yang menunjukkan akhir dari opsi. Argumen berikut harus diperlakukan sebagai operan, bahkan jika mereka mulai dengan '- karakter.

http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html#tag_12_02

18
John Doe