Основы программирования в Linux
Основы программирования в Linux читать книгу онлайн
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
Значения
TIME
MIN
Возможны четыре варианта.
□
MIN = 0
TIME = 0
read
read
□
MIN = 0
TIME > 0
read
TIME
read
□
MIN > 0
TIME = 0
read
MIN
□
MIN > 0
TIME > 0
read
read
MIN
TIME
Установив неканонический режим и используя значения
MIN
TIME
Если вы хотите просмотреть параметры
termios
$ <b>stty -a</b>
На установленных у авторов системах Linux, обладающих структурами
termios
speed 38400 baud; rows 24; 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 -parmirk -inpck -istrip -inlcr -igncr icrnl -ixon -ixoff
-iuclc -ixany -imaxbe1 iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel n10 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke
Среди прочего, как видите, символ
EOF
□ Первый способ — применить следующую команду, если ваша версия
stty
$ <b>stty sane</b>
Если вы потеряли преобразование клавиши возврата каретки в символ перехода на новую строку (который завершает строку), возможно, потребуется ввести
stty sane
□ Второй способ — применить команду
stty -g
stty
$ <b>stty -g > save_stty</b>
...
<<i>эксперименты с параметрами</i>>
...
$ <b>stty $(cat save_stty)</b>
В финальной команде
stty
save_stty="$(stty -g)"
<<i>изменение stty-параметров</i>>
stty $save_stty
□ Если вы все еще в тупике, третий способ — перейти на другой терминал, применить команду
ps
kill hup <<i>id процесса</i>>
stty
Вы также можете применять команду
stty
Для установки режима, в котором ваш сценарий командной оболочки сможет выполнять посимвольное считывание, вы должны отключить канонический режим и задать 1 и 0. Команда будет выглядеть следующим образом:
$ <b>stty -icanon min 1 time 0</b>
Теперь терминал будет считывать символы немедленно, вы можете попробовать выполнить еще раз первую программу menu1. Вы увидите, что она работает, как первоначально и предполагалось.
Вы также могли бы улучшить вашу попытку проверки пароля (см. главу 2), отключив отображение перед приглашением ввести пароль. Команда, выполняющая это действие, должна быть следующей: