1 timeout_read(){ 2 timeout=$1 3 old_stty_settings=`stty -g` # save current settings 4 stty -icanon min 0 time 100 # set 10seconds,not 100seconds 5 eval read varname # =read $varname 6 stty "$old_stty_settings" # recover settings 7 } 8 9 read -t 10 varname # 更简单的方法就是利用read命令的-t选项