Linux shell ”Press any key to continue ”功能实现
function process_continue()
{
SAVESTTY=`stty -g`
stty cbreak
dd if=/dev/tty bs=1 count=1 > /dev/null 2>&1
stty -cbreak
stty $SAVESTTY
}
echo "Press any key to continue..."
process_continue
不用敲击回车输入字符:
function read_chars()
{
SAVESTTY=`stty -g`
stty cbreak
dd if=/dev/tty bs=1 count=3 2>/dev/null -从屏幕输入多个字符的时候bs为1,count可为多个,因为每次键入都算一次块输入
stty -cbreak
stty $SAVESTTY
}
DUMP=`read_chars`
echo $DUMP
关于dd命令:http://blog.chinaunix.net/uid-24958038-id-3416169.html
dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
示例: dd if=./test1.txt of=./test2.txt bs=4 count=1 2>dev/null - 从./test1.txt中拷贝1个块大小为4byte的内容到./test2.txt中,2>dev/null 是将去掉dd的一些默认输出。
关于stty:http://blog.chinaunix.net/uid-2522786-id-223518.html
stty:设置终端属性
cbreak 同 -icanon
-cbreak 同 icanon
-icanon, 设置一次完整的读操作最小为N个字符