Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
考虑以下最小化的 Bash 脚本:
echo Enter your name: read NAME echo $NAME
现在,如果我运行脚本并输入名称并想用箭头键浏览我的输入,[[D^则会返回字符。
[[D^
您将如何重写该脚本以适应这种行为,即让我用键导航而不是赢得 ASCII 竞赛?
这些字符序列是终端传达“左光标”已被按下的方式。如果接收它的程序没有这样解释它,而是只显示它们(在过滤转义字符之后),这就是你得到的。
幸运的是,bash 的 read 命令可以选择-e启用 Readline 用于在行中读取。Readline 执行所有这些处理(就像它在正常的 bash 命令输入中所做的那样)。
-e
感谢 Andreas 和对搜索引擎的尽职调查,我能够重写我的脚本:
echo Enter your name: read -e NAME echo $NAME
现在使用箭头键在输入中导航,就像预期的那样工作。
在这里,您可以了解有关read 内置命令的更多信息。