如何确定输入是否为退格

时间:2013-08-25 03:50:20

标签: linux shell

请参阅以下代码

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下的退格。换句话说,退格符号是什么。

1 个答案:

答案 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