当我使用选择循环创建选项列表时,如果我在提示期间出错并想按退格键,它不会删除字符,而是显示 ^H 而不是它。
我知道在“读取”中我可以使用 -e 来解决这个问题,但是在选择循环中我该怎么办?此外,CTRL+C 跳出循环不起作用。我创建了选择循环,以类似菜单的方式循环访问远程端的目录。如果选择了目录,它将改变目录,但如果它不是目录,它将选择它作为要编辑的文件。
until [[ $DONE == Yes ]]; do
select dir in $(ssh auth1 ls $PUTANJA $ONLYARPA) Nazad; do
case $dir in
"Nazad")
if [ "$PUTANJA" == "/var/named/chroot/var/named/master" ]; then
return
else
PUTANJA=$(ssh auth1 "cd $PUTANJA; cd ..; pwd")
fi
;;
*)
if ssh auth1 "[ -d $PUTANJA/$dir ]"; then
PUTANJA=$PUTANJA/$dir
else
ZONA=$dir
DONE=Yes
fi
;;
esac
break
done
done
^H
如果您按下该键时终端正在显示Backspace,则您的终端可能已将退格序列设置为与您发送的字符不同的字符。其他最常见的退格字符之一是^?
. 尝试按Ctrl+ ?。但更有用的解决方案是确保您的终端设置符合您的期望(和输入)。