Tek tırnak ve ters eğik çizgi


10
~$ echo $'\'test'
'test

man bash diyor:

Karakterleri tek tırnak içine almak tırnak içindeki her karakterin gerçek değerini korur. Bir ters eğik çizgiden önce de olsa, tek tırnak işaretleri arasında tek bir tırnak işareti olmayabilir.

Neden echo-komutta çalışıyor ?

Yanıtlar:


16

Tek tırnak '...', dolar tek tırnaktan farklıdır $'...'. Birincisi ters eğik çizgiyi desteklemezken ikincisi ANSI C belirtimini kullanır.


14

chorobacevabı tamamen doğru, burada detaylar man bash:

$ 'String' biçimindeki kelimeler özel olarak ele alınır. Kelimesi genişler
dizesi, ters eğik çizgiden kaçan karakterlerin ANSI C tarafından belirtildiği gibi değiştirilmesiyle
standart. Ters eğik çizgi kaçış dizileri (varsa) şu şekilde çözülür:
              \ a alert (çan)
              \ b geri al
              \ e
              \ E bir kaçış karakteri
              \ f form besleme
              \ n yeni hat
              taşıma dönüş
              \ t yatay sekme
              \ v dikey sekme
              \\ ters eğik çizgi
              \' tek alıntı
              \ "çift tırnak
              \? soru işareti
              \ nnn Değeri sekizlik değer olan sekiz bitlik karakter
                     nnn (bir ila üç basamaklı)
              \ xHH Değeri onaltılık olan sekiz bitlik karakter
                     HH değeri (bir veya iki onaltılık basamak)
              \ uHHHH değeri olan Unicode (ISO / IEC 10646) karakteri
                     onaltılık değer HHHH (bir ila dört onaltılık basamak)
              \ UHHHHHHHH
                     değeri olan Unicode (ISO / IEC 10646) karakteri
                     onaltılı değer HHHHHHHH (bir ila sekiz onaltılık basamak)
              \ cx bir kontrol-x karakteri

Bu yüzden!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.