BASH / Readline逐字空字符

时间:2013-04-13 18:59:44

标签: bash readline null-character

我试图准确理解TTY,内核,线路规则和shell中的哪些实际上处理我输入的任何给定部分。特别是,我一直在研究这篇文章:

The TTY demystified

我的问题:如果我想在BASH中显示实际删除字符,我可以使用^ V逐字逐句。例如。我可以使用Ctrl + V然后按Ctrl + H来使用退格符。非常整洁!

echo '3^H'
3

我的问题是:如果我在正常模式中读取的内容(我相信猫会这样做)我可以通过Ctrl + V然后按Ctrl + 2(基本上是Ctrl + @,这是一个空字符)零字符的插入符号。)

BASH不会允许我在其中一行上有一个逐字空字符,但它看起来像python和其他readline程序也不会。

有人知道这是为什么,还是通用的解决方法?

1 个答案:

答案 0 :(得分:1)

C库使用文字null作为字符串终止符,因此使用它的任何内容都无法表示包含文字空值的字符串。

需要支持文字空值的程序定义自己的字符串数据类型。