请参阅以下代码
stty cbreak -echo
input==`dd if=/dev/tty bs=1 count=1 2>/dev/null`
stty -cbreak echo
if [ "$input" = "a" ];then
echo "the input is a"
fi
我如何确定输入是否是shell下的退格。换句话说,退格符号是什么。
答案 0 :(得分:1)
如果您无法在编辑器中插入文字退格符,则可以使用echo -ne '\b'
代替。这告诉echo抑制发出换行符,并将一些反斜杠转义序列解释为特殊字符。 \b
退格:
if [ "$input" = $(echo -ne '\b') ];then
当我使用vi
时,我可以使用击键^V^H
在脚本中获得退格字符。在emacs
中,它将是C-q C-h
。
if [ "$input" = "^H" ];then