使用shell脚本

时间:2015-11-15 12:42:29

标签: shell hex printf ascii

我有一个文件values,其中包含一个十六进制字符串。

\x41\x42\x43\x44\x45

我可以使用例如printf

将其编码为二进制值

printf $(cat values) -----------输出---------> ABCDE

这在终端上完美运行,但它在脚本中不起作用:

#!/bin/sh
printf $(cat values)

结果:

$ ./script.sh
\x41\x42\x43\x44\x45

我想知道为什么它不起作用以及如何解决它。

2 个答案:

答案 0 :(得分:1)

它不起作用,因为bash中使用的printf与sh中的不同。要快速解决问题,只需将#!/bin/sh替换为#!/bin/bash即可。只要您不关心完全符合/bin/sh,这可能是一个简单的解决方案。

但是,如果您真的想使用sh解释器,请使用类似:

的内容
/bin/echo -e "\x40"

答案 1 :(得分:0)

您是否尝试使用#!/ bin / bash而不是#!/ bin / sh?我无法从你的问题中说出来,但它看起来好像你不需要使用sh而不是bash。