bash -p 显示
"x\000": self-insert
可能这是由于拼写错误造成的。
为了修复,一个普通的绑定命令
bind "x":self-insert
或者
bind '"x":self-insert'
没有影响。因此我尝试通过以下方式删除错误绑定
bind -r "x\000"
它没有任何影响。
我已经尝试了所有带有引号和反斜杠以及 $'\x00' 等的变体('\0'),例如
bind -r "x"'\0'
没有成功。
但这是解决方案——第一次:
bind -r ' "x" "$(echo -n -e "\x00")" '
对于第二个相同的情况,这不起作用。
第二种情况是因为正常的命令
bind '"x":self-insert'
再次导致 bash -p 显示
"x\000": self-insert
真的没有万无一失的办法吗?
=====
== 编辑 2022.12.08 16:05
谢谢,但我需要一种不关闭外壳的方法,以免丢失东西。
。 inputrc 或其他启动文件不受影响。
通过我在答案中提出的解决方案,不需要的绑定已成功删除。
现在的问题是如何进行新的正确绑定。
甚至
bind "$(echo -n -e "\0170")":self-insert
是没有所见即所得。我所做的一切都会导致
bash -p 显示
"x\000": self-insert
我不能请你帮忙,因为你没有这样一个损坏的外壳。
(我没有勇气猜测这是否是 bash 的又一疯狂)
问候
安东·韦塞尔
答案1
解决办法是
bind -r "x" "$(echo -n -e "\x00")"
问题为什么
bind '"x":self-insert'
再次导致 bash -p 显示
"x\000": self-insert
尚未解决。原因是我没有在这个命令中按字面输入“x”,而是以八进制或十进制输入(在十六进制中它无法工作,因为涉及“x”)。
我正在尝试如何以十进制插入“x”。