Cam*_*Cam 24 parameters bash character-encoding
我需要将二进制数据传递给接受命令行参数的bash程序.有没有办法做到这一点?
这是一个接受一个参数的程序:
script arg1
Run Code Online (Sandbox Code Playgroud)
但是arg1,我想传递一些不是很好的ASCII字符的字节0x02,而不是字符串,特别是字节0xc5和0xd8.
我该怎么做呢?
Kar*_*ath 23
script "`printf "\x02\xc5\xd8"`"
script "`echo -e "\x02\xc5\xd8"`"
Run Code Online (Sandbox Code Playgroud)
测试:
# echo -n "`echo -e "\x02\xc5\xd8"`" | hexdump -C
00000000 02 c5 d8 |...|
Run Code Online (Sandbox Code Playgroud)
l0b*_*0b0 21
使用$''报价样式:
script $'\x02\xc5\xd8'
Run Code Online (Sandbox Code Playgroud)
测试:
printf $'\x02\xc5\xd8' | hexdump -C
00000000 02 c5 d8
Run Code Online (Sandbox Code Playgroud)
Bash不擅长处理二进制数据.我建议使用base64对其进行编码,然后在脚本内部对其进行解码.
编辑提供一个例子:
script "$(printf '\x02\xc5\xd8' | base64 -)"
Run Code Online (Sandbox Code Playgroud)
脚本内部:
var=$(base64 -d -i <<<"$1")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22098 次 |
| 最近记录: |