我最近花了一些时间尝试使用bash将一些数字作为字节写入管道(例如10作为0xA
,而不是0x310x30
)。不幸的是我无法这样做,不得不将脚本重写为Python。是否可以在bash脚本中以字节形式发送数据而不是字符?
答案 0 :(得分:2)
正如chepner所说,你可以输出任何值,例如:$'\ 012'。所以,一个简短的脚本:
convert() {
printf \\$(printf '%03o' $1)
}
convert 122 | od -bc
正确的打印将十进制参数转换为八进制数,第二个打印将打印如上所述的八进制数...十进制65将转换为字节'A'。
答案 1 :(得分:1)
您可以使用bash
语法在$'...'
中指定任意字符。 $'\012'
$'\x0a'
将是十进制值10的字节,分别为八进制和十六进制。请参阅QUOTING下的bash
手册页。