всем привет! хочется в одной приблуде реализовать "режим чата", суть которого в следующем: раз в 15, допустим, секунд проверяем наличие новых сообщений. в течение этого времени юзер может вводить свой текст, а по нажатию энтера - отправлять. если получили новое сообщение - сохраняем в переменной то, что наш юзер успел набрать, очищаем строку (с этим разобрался, вроде), выводим его, после него выводим юзерский ввод и даем ему писать дальше (что-то типа read -i "набранный текст"). так вот, проблема как раз в том, чтобы запомнить то, что юзер успел набрать за отведенное время. банальный read -t15 сохраняет результат только при получении целой строки (т.е. по нажатию энтера), если не успел - извини, ниче не знаю. причем введенный текст он потом выплевывает в консоль, но перехватить этот вывод у меня никак не получилось (а может, и не выплевает, а это глюк баша, потому как текст появляется после приглашения, надо проверить strace'ом) так вот, есть какой-то способ считывать пользовательский ввод в течение этих 15 секунд с сохранением результатов, если энтер жмакнуть юзер не успел?
альтернативные реализации зело непросты (типа как с помощью screen/tmux разбить окно пополам, но тогда нужно в них запускать отдельные скрипты, которые непонятно как должны между собой общаться. и прочее в таком духе, тянущее еще лишние зависимости). зачем писать такое на баше - отдельный вопрос. скорее для творческого саморазвития, интересно уже)) -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

