Menuliskan teks dalam tanda kutip adalah praktik yang cukup standar pada baris perintah, terutama ketika berhadapan dengan file yang memiliki spasi di nama, tetapi bagaimana Anda tahu apakah akan menggunakan tanda kutip tunggal atau ganda? Mari kita lihat perbedaannya, dan kapan Anda harus menggunakan yang satu dibandingkan yang lain.
Aturan umumnya adalah tanda kutip ganda masih memungkinkan perluasan variabel dalam tanda kutip, dan tanda kutip tunggal tidak. Terus membaca.
Jika Anda hanya melampirkan beberapa kata dari teks, itu tidak masalah 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.
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 $ test ke string lengkap. Pertama, kami akan menetapkan variabel:
test = "Ini adalah tes"
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 '$ test' 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 memperluasnya:
echo 'pwd' / test
Jika Anda berada di folder rumah Anda, Anda akan melihat output 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 path lengkap ketika 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
Sebaliknya, Anda harus mengepung dalam tanda kutip:
ln -s "'pwd' / filename" / beberapa / lainnya / 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:
Karena perintah unzip tidak mendukung penggunaan * untuk menjalankannya terhadap semua file, Anda harus menggunakan perintah sebagai gantinya. Di sinilah hal-hal menjadi menarik:
untuk f di * .zip; lakukan unzip $ f; selesai
Ups! Sepertinya itu tidak berhasil.
Yang perlu kita lakukan adalah menggunakan tanda kutip ganda di sekitar variabel $ f, seperti ini:
untuk f di * .zip; lakukan unzip "$ f"; selesai
Sekarang setiap kali perintah untuk melewati loop, itu akan benar-benar menjalankan perintah seperti ini:
unzip "uji 1.zip"
Tentu saja itu akan melewati dan menjalankan perintah yang sama untuk setiap file di direktori.
Sekarang setelah kami melihat contohnya, kami akan segera meninjau jika Anda melewatkannya:
Kutipan Ganda
Kutipan Tunggal
Dan dengan demikian mengakhiri pelajaran dari tanda kutip. Gunakan dengan bijak.