Perbezaan antara petikan tunggal dan berganda di bash

Perbezaan antara petikan tunggal dan berganda di bash

Bash, shell yang digunakan dalam kebanyakan pengagihan Linux, menyediakan beberapa cara untuk mengutip rentetan. Antaranya, petikan tunggal (") dan petikan berganda ("") adalah yang paling biasa digunakan. Walaupun mereka mungkin kelihatan sama, mereka mempunyai tingkah laku yang berbeza dan boleh menjejaskan bagaimana shell menafsirkan kandungan rentetan.

Dalam artikel ini, kami akan meneroka perbezaan antara petikan tunggal dan berganda di Bash.

Petikan tunggal (")

Petikan tunggal digunakan untuk melampirkan rentetan dalam bash. Apabila rentetan tertutup dalam petikan tunggal, shell merawat kandungan rentetan sebagai rentetan literal, tanpa sebarang tafsiran. Ini bermakna bahawa semua watak khas di dalam petikan tunggal dianggap sebagai watak biasa, dan tiada pengembangan atau penggantian berlaku.

Contohnya, jika kita mempunyai rentetan yang mengandungi tanda dolar ($), yang merupakan watak istimewa di Bash, dan kami melampirkannya dalam petikan tunggal, tanda dolar dianggap sebagai watak biasa dan tidak berkembang. Inilah contoh:

echo 'Gaji saya ialah $ 1000'
1echo 'Gaji saya ialah $ 1000'

Dalam contoh ini, rentetan 'Gaji saya adalah $ 1000' tertutup dalam petikan tunggal. Apabila kita menjalankan arahan, shell merawat rentetan sebagai rentetan literal dan mencetaknya tepat seperti itu, tanpa memperluaskan tanda dolar.

Petikan Double ("")

Petikan berganda juga digunakan untuk melampirkan rentetan di bash. Apabila rentetan tertutup dalam petikan berganda, shell merawat kandungan rentetan yang berbeza daripada yang dilakukan dengan petikan tunggal. Khususnya, shell memperluaskan pembolehubah dan watak khas tertentu di dalam petikan berganda.

Contohnya, jika kita mempunyai pemboleh ubah $ nama yang mengandungi nilai 'John', Dan kami melampirkannya dalam petikan berganda, shell memperluaskan pembolehubah dan menggantikan nilainya dalam rentetan. Inilah contoh:

Name = "John" Echo "Hello, $ Nama!"
12Name = 'John'echo' Hello, $ nama!"

Dalam contoh ini, Nama $ Variabel disertakan dalam petikan berganda. Apabila kita menjalankan arahan, shell memperluaskan pembolehubah dan menggantikan nilainya dalam rentetan, mengakibatkan output 'Helo, John!'.

Petikan berganda juga membolehkan penggunaan watak khas tertentu seperti backslashes (\) dan tanda seru (!) dalam rentetan. Watak -watak ini boleh dilepaskan menggunakan backslash (\) untuk mengelakkan makna istimewa mereka.

Contohnya, jika kita mahu memasukkan tanda seru dalam rentetan kita, yang mempunyai makna istimewa dalam bash, kita dapat melarikan diri dengan backslash untuk mengelakkan makna yang istimewa. Inilah contoh:

echo "Ini adalah tanda seru: \!"
1echo "Ini adalah tanda seru: \!"

Dalam contoh ini, tanda seru dilepaskan dengan a backslash (!) untuk mengelakkan makna istimewa. Apabila kita menjalankan arahan, shell merawat tanda seru sebagai watak biasa dan mencetaknya dalam output.

Kesimpulan

Kesimpulannya, perbezaan utama antara petikan tunggal dan petikan berganda dalam bash adalah cara shell merawat kandungan rentetan. Petikan tunggal merawat kandungan rentetan sebagai rentetan literal, tanpa sebarang tafsiran atau penggantian, sementara petikan berganda membenarkan pengembangan pembolehubah dan watak khas tertentu. Apabila menggunakan petikan di Bash, penting untuk memahami perbezaan antara petikan tunggal dan berganda dan pilih yang sesuai berdasarkan tingkah laku yang dimaksudkan.