参见以下代码

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

最佳答案

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

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

当我使用vi时,我可以使用按键^V^H将退格字符输入脚本。在emacs中,它将是C-q C-h
if [ "$input" = "^H" ];then

关于linux - 如何确定输入是否为退格键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18425497/

10-12 20:57