要将一行读入 bash 中的变量,我运行
read -p "here:" _msg; echo "${_msg}" > _read
xyz123
怀揣着for的期待_msg
,我123
先不小心做出来了,现在需要←先敲三下才能移动光标1
,然后继续输入xyz
,但是好像就跟进入INSERT模式一样,123
没有了,只有xyz
here:xyz
然后我检查了最终文件
xxd _read
我有
00000000: 7879 7a1b 5b44 1b5b 441b 5b44 3132 330a xyz.[D.[D.[D123.
如何忽略输入的控制字符
我在 Windows 上的 MINGW64 中运行 bash
答案1
bash
如果您阅读( )的文档man bash
,特别是描述的部分,read
您会发现有一个额外的选项:
-e
如果标准输入来自终端,readline
(请参阅上面的 READLINE)用于获取该行。
除此之外,按照指示:
阅读线这是使用交互式 shell 时处理读取输入的库 [...]
应用该指令,您将得到:
read -e -p "here:" _msg; printf '%s\n' "$_msg" > _read
输入后123
,三个光标离开,并且abc
,我从文件中得到这个_read
:
hexdump -C _read
00000000 61 62 63 31 32 33 0a |abc123.|