Di bagian 3.1.2.3 berjudul Kutipan Ganda, manual Bash mengatakan:
Menutup karakter dalam tanda kutip ganda ('"') mempertahankan nilai literal semua karakter dalam tanda kutip, dengan pengecualian '$', '`', '\', dan, ketika ekspansi sejarah diaktifkan, '!'.
Saat ini saya prihatin dengan kutipan tunggal ( '
).
Ini makna khusus, yang dijelaskan dalam bagian sebelumnya, bagian 3.1.2.2 adalah:
Menutup karakter dalam tanda kutip tunggal (
'
) mempertahankan nilai literal setiap karakter dalam tanda kutip. Kutipan tunggal mungkin tidak terjadi di antara tanda kutip tunggal, bahkan ketika didahului oleh garis miring terbalik.
Menggabungkan dua eksposisi,
echo "'$a'"
di mana variabel a
tidak didefinisikan (karenanya $a
= string nol), harus mencetak $a
pada layar, karena ''
, memiliki makna khusus di dalamnya, akan melindungi $
dari interpretasi khusus. Sebaliknya, ia mencetak ''
. Kenapa begitu?
’, ‘\’, and, when history expansion is enabled, ‘!’." in the manual. But now reading it again I realized the second character is not single quote, ("'") but tilde ("
"). Saya' Saya berterima kasih atas tanggapan cepat Anda. Terima kasih!Anda salah mengerti dokumentasi:
"Memiliki nya arti khusus" berarti bahwa itu adalah ditafsirkan khusus tidak secara harfiah. Kutipan tunggal mencegah
$
agar tidak diperluas. Tapi tanda kutip tunggal dalam tanda kutip ganda adalah karakter literal yaitu mereka tidak mempengaruhi apa pun. Jika Anda ingin output$a
maka Anda perluecho '$a'
.sumber