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

标签 linux bash encoding hex eval

我正在尝试在包含十六进制转义序列的字符串中执行命令,例如 \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/")

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

关于linux - 如何在 bash eval 字符串中使用十六进制转义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37228569/

相关文章:

php - Pimcore 时事通讯

linux - 使用 pipe 和 tee 命令获取在后台运行的命令的返回值

bash 自动完成文件名

encoding - Gradle 'maven-publish' 插件失败并出现 "unmappable character for encoding"错误

linux - SQUID启用离线模式使用缓存加载网页

linux - 在其他文件中查找文件名字符串的所有用法

linux - bash - 如何继续启动程序直到它以 0 退出

r - R 控制台中没有 UTF-8/波兰语字符

php - 将 SQL_Latin1_General_CP1_CI_AS 编码为 UTF-8

linux - 有没有办法在 Ubuntu 上运行镜像 Windows Docker?