我需要将二进制数据传递给一个接受命令行参数的bash程序。有没有办法做到这一点?
它是一个接受一个参数的程序:
script arg1但是,我不想传递字符串arg1,而是传递一些不是好的ASCII码字符的字节-特别是字节0x02、0xc5和0xd8。
我该怎么做呢?
发布于 2012-02-29 01:57:39
script "`printf "\x02\xc5\xd8"`"
script "`echo -e "\x02\xc5\xd8"`"测试:
# echo -n "`echo -e "\x02\xc5\xd8"`" | hexdump -C
00000000 02 c5 d8 |...|发布于 2012-02-29 21:27:44
使用$''报价样式:
script $'\x02\xc5\xd8'测试:
printf $'\x02\xc5\xd8' | hexdump -C
00000000 02 c5 d8发布于 2012-02-29 01:48:48
Bash不擅长处理二进制数据。我建议使用base64对其进行编码,然后在脚本中对其进行解码。
编辑后提供一个示例:
script "$(printf '\x02\xc5\xd8' | base64 -)"在脚本内部:
var=$(base64 -d -i <<<"$1")https://stackoverflow.com/questions/9487037
复制相似问题