Aturan umumnya adalah tanda kutip ganda masih memungkinkan perluasan variabel dalam tanda kutip, dan tanda kutip tunggal tidak. Terus membaca.
Kutipan dengan Teks Sederhana
Jika Anda hanya melampirkan beberapa kata dari teks, itu benar-benar tidak peduli yang mana yang Anda gunakan, karena keduanya akan bekerja persis sama. Misalnya, kedua perintah ini akan membuat direktori bernama Test Directory:
mkdir 'Test Directory' mkdir 'Test Directory'
Tipe yang lebih berpengalaman mungkin akan mencatat bahwa Anda juga bisa menggunakan mkdir Test Directory jika Anda menginginkannya.
Shell Variable Expansion
Perbedaan antara tanda kutip tunggal dan ganda menjadi lebih penting ketika Anda berurusan dengan variabel pada baris perintah - secara default, bash akan memperluas variabel seperti pengujian $ ke string lengkap. Pertama, kami akan menetapkan variabel:
test='This is a test'
Sekarang Anda dapat menggunakan variabel ini pada baris perintah, seperti ini, yang seharusnya hanya menghasilkan Ini adalah sebuah ujian ke konsol:
echo $test
Di sinilah perbedaan antara tanda kutip ganda dan tunggal menjadi lebih jelas - ketika Anda menggunakan tanda kutip tunggal, variabel tidak akan diperluas. Misalnya, jika Anda menjalankan perintah ini:
echo '$test'
Anda tidak akan melihat apa pun kecuali 'tes $' pada baris perintah saat Anda menggunakan tanda kutip tunggal, tetapi akan ditampilkan dengan benar saat Anda menggunakan tanda kutip ganda:
Hal yang sama berlaku ketika Anda menggunakan karakter `untuk memperluas perintah pada baris perintah. Misalnya, katakan Anda ingin menggunakan pwd perintah dari dalam perintah lain - Anda akan menggunakan backticks untuk memberi tahu shell untuk meluaskannya:
echo `pwd`/test
Jika Anda berada di folder rumah Anda, Anda akan melihat keluaran yang tampak seperti ini:
/home/geek/test
Katakanlah, misalnya, Anda berada di folder yang memiliki ruang di jalur, dan Anda ingin menggunakan perintah ln untuk membuat tautan simbolis ke file di direktori saat ini. Anda biasanya perlu menentukan jalur lengkap saat menggunakan perintah ln, jadi lebih mudah menggunakan `pwd` untuk menyimpan pengetikan.
Lihatlah apa yang terjadi ketika Anda mencoba dan menggunakan perintah tanpa menyertakan tanda kutip:
ln –s `pwd`/test /home/geek/linkedname
ln –s '`pwd`/filename' /some/other/path
Untuk contoh yang lebih konkret, mari kita asumsikan bahwa kita memiliki struktur folder seperti contoh ini, di mana semua nama file memiliki spasi di dalamnya:
for f in *.zip;do unzip $f;done
Ups! Sepertinya tidak berfungsi.
for f in *.zip;do unzip '$f';done
Sekarang setiap kali perintah untuk melewati loop, itu akan benar-benar menjalankan perintah seperti ini:
unzip 'test 1.zip'
Tentu saja itu akan melewati dan menjalankan perintah yang sama untuk setiap file di direktori.
Mari Meninjau
Sekarang setelah kami melihat contohnya, kami akan segera meninjau jika Anda melewatkannya:
Kutipan Ganda
- Gunakan ketika Anda ingin menyertakan variabel atau menggunakan ekspansi shell di dalam string.
- Semua karakter dalam ditafsirkan sebagai karakter biasa kecuali $ atau `yang akan diperluas pada shell.
Kutipan Tunggal
Semua karakter dalam tanda kutip tunggal diartikan sebagai karakter string.
Dan dengan demikian mengakhiri pelajaran dari tanda kutip. Gunakan dengan bijak.