如何在 bash eval 字符串中使用十六进制转义?
How to use hex escapes in bash eval string?
我正在尝试在包含十六进制转义序列的字符串中执行命令,例如 \x20
。
例如,如果字符串是ls\x20/usr/bin/
,那么我想运行命令ls /usr/bin/
。
我该怎么做?
嗯,可读的方式包含 3 行:
CMD="ls\x20/usr/bin/"
OUTPUT="$(echo -e $CMD)"
eval "${OUTPUT}"
echo -e
将转换字符串,转换后的字符串将存储在 OUTPUT 中。
然后只需使用 eval :)
希望对您有所帮助
一行(如你所说):
$(echo -e "ls\x20/usr/bin/")
注意:这种方式是一行,但并不适用于所有情况..
例如,它不适用于别名。
我正在尝试在包含十六进制转义序列的字符串中执行命令,例如 \x20
。
例如,如果字符串是ls\x20/usr/bin/
,那么我想运行命令ls /usr/bin/
。
我该怎么做?
嗯,可读的方式包含 3 行:
CMD="ls\x20/usr/bin/"
OUTPUT="$(echo -e $CMD)"
eval "${OUTPUT}"
echo -e
将转换字符串,转换后的字符串将存储在 OUTPUT 中。
然后只需使用 eval :)
希望对您有所帮助
一行(如你所说):
$(echo -e "ls\x20/usr/bin/")
注意:这种方式是一行,但并不适用于所有情况.. 例如,它不适用于别名。