(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.