繁体   English   中英

如何在 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/")

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM