Saya telah melihat banyak tutorial yang menggunakan --perintah after. Sesuatu seperti ini:
command --
Apa artinya ini --?
Saya telah melihat banyak tutorial yang menggunakan --perintah after. Sesuatu seperti ini:
command --
Apa artinya ini --?
Jawaban:
Yang --digunakan untuk menunjukkan akhir opsi baris perintah. Ini memungkinkan Anda untuk menggunakan argumen yang dimulai dengan --. Misalnya, jika Anda membuat file bernama --foo:
$ > '--foo'
$ ls
--foo
Dan kemudian mencoba menghapusnya, rmakan berpikir Anda memberikan argumen:
$ rm --foo
rm: unrecognized option '--foo'
Try 'rm ./--foo' to remove the file '--foo'.
Try 'rm --help' for more information.
Salah satu cara mengatasi ini adalah dengan menggunakan --:
$ rm -- --foo
Ini adalah praktik umum dan direkomendasikan oleh POSIX , sehingga didukung oleh banyak program.
rmprogram dan banyak utilitas yang sesuai dengan POSIX. Lihat Pedoman 10 . Untuk benar-benar memastikan bahwa itu bukan Bash yang melakukan pekerjaannya (dan itu tidak masuk akal), buat saja skrip kecil dengan adil printf '> %s <\n' "$@"dan jalankan dengan --.
--, tetapi, tentu saja, itu hanya karena modul Perl yang relevan ( getopts) juga mendukungnya. Anda benar, saya baru saja mencari man bash, melihat bagian yang telah saya kutip tetapi gagal untuk melihat bahwa itu ada di bagian "opsi baris perintah". Terima kasih atas koreksi, jawabannya diedit.
Sebagian besar perintah akan menggunakan a - untuk memberi tahu perintah bahwa parameter lebih lanjut harus diperlakukan secara berbeda. Salah satu contohnya adalah rm - --filename yang disebutkan di atas. Contoh lain, skrip seperti 'startx' akan mengartikan semuanya sendiri sebelumnya -, dan meneruskan semuanya setelahnya ke server X.