我需要使用bash脚本在文件中编写类似"0x12345"
的内容。十六进制值是一个变量,引号必须在文件中。
要回显引号,我使用\042
,并使用$1
作为十六进制。所以我有类似的东西:
echo -e "\042$1\042" > file.txt
如果$1
以字母开头,但是因为它以0开头,则转义代码被解释为\0420
或类似的东西,并且它会写^Px123"
在文件而不是"0x123"
我怎样才能准确写出“0x ..”?我无法在号码前面添加空格或其他字符。有没有更好的方法来做我想做的事情?
答案 0 :(得分:4)
您不应该需要-e
。
只需使用:
s="0x12345"
echo "\"$s\""
"0x12345"
或者使用更便携的printf
:
printf "\042%s\042\n" "$s"
"0x12345"