如何在bash eval字符串中使用十六进制转义?

时间:2016-05-14 15:35:45

标签: linux bash encoding hex eval

我正在尝试在包含十六进制转义序列的字符串中执行命令,例如\x20

例如,如果字符串是ls\x20/usr/bin/,那么我想运行命令ls /usr/bin/

我该怎么做?

1 个答案:

答案 0 :(得分:1)

可读方式包含3行:

CMD="ls\x20/usr/bin/"
OUTPUT="$(echo -e $CMD)"
eval "${OUTPUT}"

echo -e将转换字符串,转换后的字符串将存储在OUTPUT中。 然后只使用eval:)

希望它能帮到你

在一行中(正如你所说):

$(echo -e "ls\x20/usr/bin/")

注意:这种方式是一行,但它不适用于所有内容.. 例如,它不适用于别名。