使用转义码后紧跟数字

时间:2016-11-30 17:42:33

标签: bash escaping

我需要使用bash脚本在文件中编写类似"0x12345"的内容。十六进制值是一个变量,引号必须在文件中。

要回显引号,我使用\042,并使用$1作为十六进制。所以我有类似的东西:

echo -e "\042$1\042" > file.txt

如果$1以字母开头,但是因为它以0开头,则转义代码被解释为\0420或类似的东西,并且它会写^Px123"在文件而不是"0x123"

我怎样才能准确写出“0x ..”?我无法在号码前面添加空格或其他字符。有没有更好的方法来做我想做的事情?

1 个答案:

答案 0 :(得分:4)

您不应该需要-e

只需使用:

s="0x12345"
echo "\"$s\""

"0x12345"

或者使用更便携的printf

printf "\042%s\042\n" "$s"

"0x12345"