stty -a
अपनी टर्मिनल सेटिंग देखने के लिए दौड़ने का प्रयास करें । मेरा संदेह यह है कि आपकी icrnl
सेटिंग सेट नहीं है और इसे दिखाया जाएगा -icrnl
(माइनस साइन का मतलब है कि यह बंद हो गया है) इसकी सामान्य सेटिंग ऑन रहने के बजाय। जब मैं लॉग इन करता हूं तो मेरा टर्मिनल सामान्य रूप से कैसे सेट किया जाता है:
$ stty -a
speed 38400 baud; rows 45; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^?; 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
और मुझे लाइन एंडिंग से कोई समस्या नहीं है: या तो रिटर्न (^ M) या एंटर (^ J) इनपुट लाइनों को समाप्त करेगा। लेकिन अगर मैं बंद icrnl
कर देता हूं तो ^ एम कोड हर बार दिखाई देता है जब मैं एक प्रोग्राम से बात कर रहा हूं और हिट दर्ज करता हूं:
$ stty -icrnl
$ read line
Line of text^M^M^M^M
$ stty -a
speed 38400 baud; rows 45; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^?; 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
कोड का icrnl
अर्थ है, "गाड़ी नई दिशाओं में लौटती है" और चल रहे कार्यक्रम से छुपाता है कि आप टाइप कर रहे हैं ^ एम जब यूनिक्स वास्तव में ^ जे। पुराने कीबोर्ड में एक अलग रिटर्न और एंटर कुंजी होती थी (जहां रिटर्न आम तौर पर एक फॉर्म के माध्यम से आपको उन्नत करता है और इसे सबमिट किया जाता है), लेकिन आज हमारे पास आम तौर पर केवल एक पंक्ति-अंत कुंजी है और इसलिए यह टर्मिनल सेटिंग दो अर्थों को संयोजित करने में मदद करती है।
stty icrnl
कमांड को अपने में जोड़ें .profile
या .bashrc
यदि आप पाते हैं कि यह वास्तव में समस्या सेटिंग है।