man bash
bu tek alıntı hakkında verir
Karakterleri tek tırnak işaretleri içine alma, tırnak içindeki her karakterin gerçek değerini korur. Önceden ters eğik çizgiden önce olsa bile, tek tırnaklar arasında tek bir teklif oluşmayabilir.
Komut satırına ne yazarsanız yazın, bash bunu yorumlar ve sonucu gönderilmesi gereken programa gönderir. Bu durumda eğer kullanırsanız sed 's/$old_run/$new_run/'
, bash ilk önce sed
onu görür, $PATH
değişkende mevcut bir çalıştırılabilir olarak tanır. . sed
Yürütülebilir bir girişi gerektirir. Bash girişi arar ve bulur 's/$old_run/$new_run/'
. Tek tırnak, bash’ın içindeki içeriği yorumlamamasını ve olduğu gibi geçirmemesini söylüyor. Öyleyse, bash onları sedye'ye geçirir Sed bir hata veriyor çünkü $
sadece satırın sonunda meydana gelebiliyor.
Bunun yerine eğer çift tırnak kullanırsak, yani "s/$old_run/$new_run/"
bash bunu görür ve $old_run
değişken bir isim olarak yorumlanır ve bir ikame yapar (bu aşama değişken genişleme olarak adlandırılır). Gerçekten de ihtiyacımız olan şey bu.
Ancak, çift tırnak işareti kullanırken dikkatli olmalısınız, çünkü önce bash ile yorumlanır ve sonra sed'e verilir. Bu nedenle, `gibi bazı semboller kullanmadan önce kaçmalıdır.