4

考虑以下最小化的 Bash 脚本:

echo Enter your name:
read NAME
echo $NAME

现在,如果我运行脚本并输入名称并想用箭头键浏览我的输入,[[D^则会返回字符。

您将如何重写该脚本以适应这种行为,即让我用键导航而不是赢得 ASCII 竞赛?

4

2 回答 2

4

这些字符序列是终端传达“左光标”已被按下的方式。如果接收它的程序没有这样解释它,而是只显示它们(在过滤转义字符之后),这就是你得到的。

幸运的是,bash 的 read 命令可以选择-e启用 Readline 用于在行中读取。Readline 执行所有这些处理(就像它在正常的 bash 命令输入中所做的那样)。

于 2013-11-06T18:03:05.583 回答
1

感谢 Andreas 和对搜索引擎的尽职调查,我能够重写我的脚本:

echo Enter your name:
read -e NAME
echo $NAME

现在使用箭头键在输入中导航,就像预期的那样工作。

在这里,您可以了解有关read 内置命令的更多信息。

于 2013-11-06T19:16:29.803 回答