Terminal

輸入鍵與輸入鍵 (CR) 不同

  • March 25, 2017

許多網頁說輸入鍵的ASCII碼是13(0d)。

Enter 鍵被視為輸入 (CR)。

現在讓我們做一個實驗。

打開 vim 只需按三下 enter 鍵,什麼都不做,然後將文件保存為 test.csv。

xxd  test.csv
0000000: 0a0a 0a 

我的結論得到了。

enter 鍵的 ascii 值為 0a ,表示換行,它不同於輸入(ascii 中的 13 或 0d)。

是對還是不對?

當您按下 時,您的終端會發送輸入Enter,並且在類 Unix 系統上,終端驅動程序會將其轉換為換行符(“換行符”)。

這就是icrnl顯示的特徵stty -a,例如,

$ stty -a
speed 38400 baud; rows 40; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^H; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke

程序(甚至是 shell 腳本)可以將其關閉以讀取實際的輸入符以將其與*Control*``J(換行符)區分開來。

引用自:https://unix.stackexchange.com/questions/349214