3

我最近花了一些时间尝试使用 bash 将一些数字作为字节写入管道(例如 10 as 0xA, not 0x310x30)。不幸的是,我无法这样做,不得不将脚本重写为 Python。有什么方法可以在 bash 脚本中以字节而不是字符的形式发送数据?

4

2 回答 2

2

bash您可以在using$'...'语法中指定任意字符。$'\012' $'\x0a'分别是八进制和十六进制的十进制值 10 的字节。请参阅bash引用下的手册页。

于 2012-06-20T21:15:26.073 回答
2

正如 chepner 所说,您可以输出任何值,例如:$'\012'。所以,一个简短的脚本:

convert() {
    printf \\$(printf '%03o' $1)
}
convert 122 | od -bc

正确的打印将十进制参数转换为八进制数,第二次打印将打印八进制数,如上...例如十进制 65 将转换为字节'A'。

于 2012-06-20T22:48:48.407 回答