Bash 如何用八进制值写字符串
在bash中,我想编写字符串Bash 如何用八进制值写字符串,bash,Bash,在bash中,我想编写字符串“BLA\1” 因此它将是一个缓冲区424c4101,但结果是424c415c31 要完成此操作,在python中,如果在二进制文件中写入“BLA\1”,则“\1”将被解释为“1” 那么,如何在bash中正确编写字符串“BLA\1” 使用$''特殊引号: echo -n $'BLA\1' | xxd 00000000: 424c 4101 BLA. 使用POSIX标准定义的printf: printf '
“BLA\1”
因此它将是一个缓冲区424c4101
,但结果是424c415c31
要完成此操作,在python中,如果在二进制文件中写入“BLA\1”
,则“\1”
将被解释为“1”
那么,如何在bash中正确编写字符串“BLA\1” 使用$''
特殊引号:
echo -n $'BLA\1' | xxd
00000000: 424c 4101 BLA.
使用POSIX标准定义的
printf
:
printf 'BLA\1'
一些特定于bash的选项:
# Let echo expand the escape code
echo -ne 'BLA\1'
# Use $'...', as in choroba's answer
echo -n $'BLA\1'
@Nicosmik在StackOverflow=Upvote和/或Accept上说:“谢谢”。
printf'BLA\1'| xxd
工作正常,但echo-e'BLA\1'
添加一个LF字符我忘记了-n
选项以抑制echo
添加的换行。不过,我不完全清楚为什么我在这个答案中加入了echo
printf
可移植且可靠。