0

看下面的代码

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

4

1 回答 1

1

如果您无法在编辑器中插入文字退格字符,则可以echo -ne '\b'改用。这告诉 echo 禁止发出换行符,并将一些反斜杠转义序列解释为特殊字符。\b是退格:

if [ "$input" = $(echo -ne '\b') ];then

当我使用 时vi,我可以使用击键^V^H将退格字符放入脚本中。在emacs,它会C-q C-h

if [ "$input" = "^H" ];then
于 2013-08-25T04:34:13.110 回答