\ E ve ^ [arasındaki fark


15

Gilles şunu yazdı :

karakter 27 = 033 = 0x1b = ^[=\e

Demizey şunu yazdı :

^ [sadece ESCAPE'in bir temsilidir ve \ e gerçek bir ESCAPE karakteri olarak yorumlanır

Sonra bir TechRepublic makalesinden de bu satırı buldum

Anahtar dizisini ^ [[24 ~ yerine \ e [24 ~ olarak yazdığınızdan emin olun. Bunun nedeni, ^ [dizisinin kabukta \ e ile temsil edilen [Esc] anahtarına eşdeğer olmasıdır. Örneğin, anahtar dizisi ^ [[OP olsaydı, kullanılacak sonuç kodu \ e [OP olur.

Ama \ e yerine ^ [kullanan eşlemeler kullanıyorum.

Yani birbirinin yerine kullanılabilir mi? Birini diğeri yerine ne zaman kullanmam gerekir?

Yanıtlar:


16

ANSI ASCII standardına bakarsanız , karakter setinin alt kısmı (ilk 32) "kontrol karakterleri" olarak ayrılır (bazen "kaçış dizileri" olarak da adlandırılır). Bunlar NUL karakteri, Life Feed, Carriage Return, Tab, Bell, vb. Şeylerdir. Büyük çoğunluk, Ctrltuşa başka bir tuşla birlikte basılarak taklit edilebilir .

27. (ondalık) veya \033sekizli dizi veya 0x1bonaltılık dizi , Escape dizisidir. Hepsi aynı kontrol dizisinin temsilleridir. Farklı mermiler, diller ve araçlar bu sırayı farklı şekillerde ifade eder. Bu Ctrldizisidir Ctrl- [, dolayısıyla bazen temsil edilir ^[, ^kısa bir yandan olmak Ctrl.

Kontrol karakteri dizilerini Ctrl- ile devam ettirerek komut satırınızda ham diziler olarak girebilirsiniz v. Ctrl- vÇoğu kabuk ve programa göre, aşağıdaki anahtar dizinin yorumlanmasını durdurur ve bunun yerine ham formuna ekler. Bunu Escapetuşu veya Ctrl- ile yaparsanız v, çoğu mermide olarak görüntülenir ^[. Bununla birlikte, bu dizi yorumlanmasına rağmen, kolayca kesilip yapıştırılmaz ve belirli protokoller veya programlar tarafından karşılaşıldığında kontrol dışı bir karakter dizisine indirgenebilir.

Kullanımı kolaylaştırmak için bunun üstesinden gelmek için, bazı yardımcı programlar \033(sekizli referansla), onaltılık referansla \x1bveya özel karakter referansıyla "ham" sekansı temsil eder \e. Bu çok şekilde aynı olan \tbir yorumlanır Tabayrıca üzerinden giriş olabilir bu arada - Ctrl- i, ya da \nyeni satır ya da Enterayrıca üzerinden giriş olabilir anahtar, Ctrl- m.

Gilles şunu söylediğinde:

27 = 033 = 0x1b = ^ [= \ e

Ondalık ASCII 27, sekizli 33, altıgen 1b, Ctrl- diyor [ve \ehepsi eşit, hepsi aynı şeye (anlamsal olarak) atıfta bulunduğu anlamına geliyor.

Demizey dediğinde

^ [sadece ESCAPE'in bir temsilidir ve \ e gerçek bir ESCAPE karakteri olarak yorumlanır

O anlamsal anlamına gelir, ama sen basarsanız Ctrl- v Ctrl- [bu tam aynıdır \eçiğ sokulan sekans büyük olasılıkla aynı şekilde ele alınır, ancak bu her zaman garanti değildir ve programlı daha taşınabilir kullanılması önerilir, böylece \eya 0x1bya \033bağlı kullanılan dil / kabuk / yardımcı program.


4

Bunların hepsi, bazı yazılımların veya bazı insanların kullandığı bu karakterin temsilleridir. En yaygın olanları listeledim. Bir insanla konuşuyorsanız, anlayacakları her şeyi kullanın. (Açıkçası, bu geri tepenlerden en az birini anladığınızdan emin olmaya çalışıyorum.) Yazılımla konuşuyorsanız, ne anladığını öğrenmek için belgelere bakın.

Bash, kaçış dizilerde \e, \033ve \x1bbir bağımsız değişken olarak iş printfbölgesi $'…', komutlarında ve anahtar bağları içinde. Anahtar bağlantılarda, daha genel bir sözdizimi vardır, \C-[çünkü karakter 27 Ctrl+ yazarak elde ettiğiniz şeydir [(bu sözdizimi Emacs anahtar bağlarının taklididir). \033tüm mermilerde bir argüman olarak çalışır printf; diğer bağlamlar ve gösterimler kabuğa bağımlıdır.

Ekran bu kaçış dizilerinin hiçbirini tanımıyor, fakat ^kontrol öneki olarak tanınıyor , bu ^[nedenle karakter 27 anlamına geliyor.

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.