目的是将光标放在屏幕上的某个位置(屏幕中心附近),输入一些初始文本,并提示用户输入更多文本以保存在变量中,同时为他保留正常的readline
行编辑功能.
我最初的尝试是:
- 将光标垂直居中
echo
/printf
添加一些空格, echo
通过/再次将光标水平居中printf
,- 问题
read -i "editable pre-text" -e answer
。
但是我注意到下面描述的行为,并制作了以下示例性的两行代码来演示它。
执行以下脚本时
echo -n "______________"
read -e risp
只要没有输入,Backspace就无效(这是我喜欢的一种行为,因为echo
之前输入的字符read
不能在 期间删除read
)。
但是,键入某些内容(例如某些文本)然后用 删除它(完全,直到并包括第一个键入的字符)Backspace,将导致光标在Backspace删除第一个键入的字符后立即跳转到终端的第一个冒号。
换句话说,当脚本启动时,Backspace什么都不做,whileXBackspace将导致 cursort 跳转到终端的第一列。
这种行为的原因是什么,我该如何避免?
鉴于这个问题的标题,我希望它与当前问题有关,但我不明白它是否真的如此。