Cat
為什麼 cating 執行檔會不斷更改 PuTTY 的標題?
通常可以看到,如果一個執行檔被
cat
編輯,只要它是一個巨大的文件,它就會不斷更改 ‘PuTTY 的標題,application
直到它完成將二進製文件列印到STDOUT
那些奇怪的字元,前綴strace
似乎對了解沒有幫助。那裡發生了什麼,導致這種情況發生?只是好奇。
看起來不太可能,PuTTY 這樣做是為了響應字元組合。
PuTTY 辨識用於、Linux 控制台和一些不太熟悉的終端的許多(**
no
**意味著全部)轉義序列。xterm
PuTTY 的一位開發人員編制了一份所有可能感興趣的列表,大約 650 項。您可以在這里和那裡找到名為“all-escapes.txt” 的副本,開頭如下:# This file is hoped to document all the escape sequences supported by # terminals that are vaguely compliant with ECMA-48 and friends. # Changes should be submitted to <bjh21@bjh21.me.uk> # It includes everything from: # <URL:http://www.cs.utk.edu/~shuford/terminal/dec_vt220_codes.txt> 1999-05-16 # <URL:http://www.cs.utk.edu/~shuford/terminal/vt100_reference_card.txt> # 1993-02-01 # <URL:http://www.cs.utk.edu/~shuford/terminal/vt100_codes_news.txt>1998-09-18 # <URL:http://www.cs.utk.edu/~shuford/terminal/ansi_dec_controls_news.txt> # 1999-05-16 # <URL:http://www.cs.utk.edu/~shuford/terminal/xterm_controls.txt> 1999-10-12 # <URL:http://www.cs.utk.edu/~shuford/terminal/color_control_news.txt> # 1999-11-13 # ECMA-48 5th Ed. control functions (section 8.3, annex F) # Linux console_codes(4) # SunOS 5.7 wscons(7D) # UnixWare 7 display(7) # IRIX 6.5.5 xwsh(1G) # VT220 Reference manual (<URL:http://vt100.net/docs/vt220-rm/>, EK-VT220-RM) # <URL:http://vt100.net/ctrlseq_dec.html> 1999-11-24 # <URL:http://vt100.net/ctrlfunc_dec.html> 1999-12-01 # <URL:http://www.wyse.com/service/support/kbase/SEQwt.asp?Q=9> (wy75) # 1999-07-19 # <URL:ftp://ftp.cs.cmu.edu/afs/cs/user/ralf/pub/rbcom346.zip#TERM-EMU.DOC> # 1999-09-13 # <URL:http://www.itscj.ipsj.or.jp/ISO-IR/2-1.htm> 1999-04-19 # <URL:http://www.itscj.ipsj.or.jp/ISO-IR/2-2.htm> 2004-09-27 # <URL:http://www.itscj.ipsj.or.jp/ISO-IR/2-3.htm> 2004-09-27 # <URL:http://www.itscj.ipsj.or.jp/ISO-IR/2-8-1.htm> 1999-04-19 # <URL:http://www.itscj.ipsj.or.jp/ISO-IR/2-8-2.htm> 2001-05-10 # iBCS2 description in ESR's termtypes.master version 10.2.7 # Reflection Terminal Reference Manual for ADDS, ANSI, DG, VT, WYSE, and # Unisys Hosts; Version 7.0; September 1998; published by WRQ Inc. # DEC Terminals and Printers Handbook 1985 EB 26291-56 (Appendices C, E, and G) # OpenServer 5.0.6 screen(HW) # X Consortium Compound Text Encoding Version 1.1
無論出於何種原因,他們都不喜歡直接參考 Linux 和 xterm 文件的想法,而是使用了輔助資源。
PuTTY 辨識的標題字元串以下列選項之一開頭:
- ANSI 7 位 OSC (
escape``]
),或- ANSI 8 位 OSC(八進制**
235
**)後跟
0
,1
,2
,2``1
(ASCII 數字)或L
,一個分號,
和標題文本,
並以以下選擇之一結束:
- ANSI 7 位字元串終止符 (
escape``\
),或- ANSI 8 位字元串終止符(八進制
234
),或- ASCII BEL(7,由 xterm 使用)
順便說一句,如果看到 ASCII 輸入或換行,它將停止處理標題轉義。
雖然“大”文件可能看起來足夠隨機,但您的文件可能包含表格等形式的一些偏差。否則它不會像描述的那樣重複更新標題。
建構一個檢測潛在標題字元串的程序可能會很有趣,這樣您就可以找到那些而無需重置終端(或可能完全停止它)。
進一步閱讀: