首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在bash中将二进制数据作为参数传递

在bash中将二进制数据作为参数传递
EN

Stack Overflow用户
提问于 2012-02-29 01:45:11
回答 5查看 27.2K关注 0票数 26

我需要将二进制数据传递给一个接受命令行参数的bash程序。有没有办法做到这一点?

它是一个接受一个参数的程序:

代码语言:javascript
复制
script arg1

但是,我不想传递字符串arg1,而是传递一些不是好的ASCII码字符的字节-特别是字节0x020xc50xd8

我该怎么做呢?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-02-29 01:57:39

代码语言:javascript
复制
script "`printf "\x02\xc5\xd8"`"
script "`echo -e "\x02\xc5\xd8"`"

测试:

代码语言:javascript
复制
# echo -n "`echo -e "\x02\xc5\xd8"`" | hexdump -C
00000000  02 c5 d8                                          |...|
票数 25
EN

Stack Overflow用户

发布于 2012-02-29 21:27:44

使用$''报价样式:

代码语言:javascript
复制
script $'\x02\xc5\xd8'

测试:

代码语言:javascript
复制
printf $'\x02\xc5\xd8' | hexdump -C
00000000  02 c5 d8
票数 25
EN

Stack Overflow用户

发布于 2012-02-29 01:48:48

Bash不擅长处理二进制数据。我建议使用base64对其进行编码,然后在脚本中对其进行解码。

编辑后提供一个示例:

代码语言:javascript
复制
script "$(printf '\x02\xc5\xd8' | base64 -)"

在脚本内部:

代码语言:javascript
复制
var=$(base64 -d -i <<<"$1")
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9487037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档