# This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # : ${TMPDIR:=/var/tmp} a=4 read -t 1 a < /dev/tty estat=$? if [ $estat -gt 128 ]; then echo timeout 1: ok else echo $estat fi echo ${a:-unset or null 1} read -t 0.000001 a < /dev/tty estat=$? if [ $estat -gt 128 ]; then echo timeout 2: ok else echo $estat fi echo ${a:-unset or null 2} sleep 1 | read -t 0.25 a estat=$? if [ $estat -gt 128 ]; then echo timeout 3: ok else echo $estat fi echo ${a:-unset or null 3} read -t -3 a < /dev/tty echo $? echo $a # the above should all time out echo abcde | { read -t 0.5 a echo $a } read -t .0001 a << a.pipe rm -f a.pipe for c in {0..2000}; do (eval "echo {0..$c}" & read -u 9 -t 0.0001) >/dev/null printf $'ok %d' "$c" >/dev/null done cd $OLDPWD rm -f $TMPDIR/a.pipe # paranoia