James benar, tetapi untuk menambahkan lebih banyak data, saya pikir cara terbaik untuk memikirkannya adalah sebagai argumen pada perintah: apakah Anda bermaksud "halo" dan "dunia" menjadi dua argumen atau "halo dunia" menjadi satu argumen.
Juga, tanda kutip ganda memungkinkan interpretasi lebih dari sekadar variabel. Tepatnya apa yang tergantung pada shell Anda, tetapi periksa ekspansi sejarah, ekspansi brace, dan ekspansi nama file.
Penting juga untuk dicatat bahwa ada beberapa contoh di mana Anda perlu menggunakan kedua jenis kutipan dalam satu argumen. Ingatlah bahwa (secara default) argumen dibatasi oleh spasi, jadi jika Anda tidak meninggalkan ruang, Anda masih menentukan argumen yang sama.
Mekanisme singlequote Kebanyakan shell tidak memungkinkan untuk karakter khusus, yang berarti bahwa setiap instance dari singlequote lain, bahkan jika itu tampaknya lolos, mengakhiri kutipan. Oleh karena itu tidak mungkin untuk melewatkan string dengan tanda kutip tunggal di dalam string tanda kutip tunggal, dan Anda harus menggunakan tanda kutip ganda. Ini bisa menyebalkan ketika Anda ingin menyampaikan argumen yang berisi singlequote dan sesuatu yang akan ditafsirkan, tetapi Anda tidak mau. Misalnya, jika Anda ingin meneruskan string literal "` '$ VAR' adalah variabel ", Anda harus melakukannya dengan cara ini:
"'"'$VAR'"' is a variable"
Itu sebenarnya adalah gabungan dari tiga string kutipan-lolos:
"'"
'$VAR'
"' is a variable"
atau, dengan kutipan dihapus:
'
$VAR
' is a variable
Sebenarnya, dengan sebagian besar kerang, Anda juga bisa melakukannya dengan cara ini:
"'\$VAR' is a variable"
di mana backslash (" \
") memberi tahu shell untuk menerima karakter berikut secara harfiah dan tidak melakukan ekspansi apa pun di atasnya.
Tetapi ada beberapa contoh di mana Anda akhirnya harus melakukannya dengan cara multi-string-concatenation, bukan berarti saya benar-benar dapat memberikan contoh sekarang.