实现效果:
运行脚本,提示输入4个字符。
输入过程中,未达到4个字符之前五显示。
输入第4个字符后,自动显示输入的4个字符。
#!/bin/bash
keypresses=4
old_tty_setting=$(stty -g)
echo "Presss $keypresses keys"
stty -icanon -echo
keys=$(dd bs=1 count=$keypresses 2> /dev/null)
stty "$old_tty_setting"
echo "You pressed the \"$keys\" keys."
exit 0
代码简要说明:
stty -g输出stty当前设置,存储在变量old_tty_setting中
stty -icanon -echo 将不显示标准输入内容于终端屏幕
dd bs=1 count=$keypresses 2> /dev/null 这里没有设置if,会默认使用标准输入。配合上面的stty设置,实现了键盘输入(即标准输入)内容被dd命令获得,存储于变量keys
stty "$old_tty_setting" 恢复原来的设置