(1 jawaban)
Tutup 2 tahun lalu .
Saya dulu menggunakan ''
dan ""
(tanda kutip tunggal dan ganda) secara bergantian pada baris perintah, tetapi baru-baru ini saya perhatikan bahwa '$HOME/some/dir'
tidak diperluas, sementara "$HOME/some/dir"
adalah. Saya mencari-cari sedikit dan menemukan bahwa ""
mengizinkan beberapa perlindungan karakter khusus, sedangkan ''
memungkinkan perlindungan penuh. Jadi karakter lain apa yang dilindungi oleh ''
dan bukan ""
?
EDIT:Apa yang praktis situasi di mana perbedaan ini mungkin signifikan?
Jawaban yang Diterima:
Lihatlah halaman manual bash. Ada seluruh bagian tentang mengutip. Karena ini dilisensikan di bawah GFDL, yang tidak kompatibel dengan lisensi CC-BY-SA yang digunakan di sini, saya tidak akan mengutip semuanya, tetapi benar-benar membaca itulah jawaban yang paling pasti.
Singkatnya, tanda kutip tunggal menghentikan semua interpretasi — string dirender secara harfiah. Tanda kutip ganda meninggalkan $
(tanda dolar), ` (kutipan balik) sebagai spesial, dan (garis miring terbalik) sebagai spesial ketika diikuti oleh karakter tertentu lainnya. Dan
!
akan diperlakukan secara khusus jika fitur perluasan riwayat diaktifkan (yang secara default).
Dalam penggunaan praktis, $
adalah masalah besar, karena orang sering menginginkan berbagai ekspansi yang memungkinkannya (variabel dan lebih banyak lagi), sambil tetap mencegah shell mengacaukan sebagian besar baris perintah.