考虑以下最小化的Bash脚本:
echo Enter your name:
read NAME
echo $NAME
现在,如果我运行脚本并输入名称并希望使用箭头键导航我的输入,则会返回[[D^
个字符。
您如何重写该脚本以满足此类行为,即让我使用密钥导航而不是赢得ASCII竞赛?
答案 0 :(得分:4)
这些字符序列是终端传达“按下光标”的方式。如果接收它的程序没有解释它,而只是显示它们(在过滤转义字符后),那就是你得到的。
幸运的是,bash的read命令有-e
选项,可以使用Readline读取行。 Readline执行所有处理(就像在普通bash命令输入上一样)。
答案 1 :(得分:1)
感谢Andreas和一些搜索引擎,我能够重写我的脚本:
echo Enter your name:
read -e NAME
echo $NAME
现在使用箭头键浏览输入,就像预期的那样。
Here您可以详细了解read builtin command。