在Bash中执行音译字符串



我想从字符串执行bash脚本,输入"echo TEST!"为例。所以我可以这样写:

eval "echo TEST!"

问题是,字符串在UTF-16LE中音译以缩短高尔夫目的的字符计数(它不会缩短字节计数,但在给定的上下文中它不是问题),所以我的实际字符串是"捥潨卅⅔"。

我知道如何将它音译回来,例如,如果我这样做:

echo 捥潨吠卅⅔|iconv -tUCS2

它打印:

回波测试!

但是当我想从字符串执行时,它不起作用。我尝试了这个例子:

eval 捥潨吠卅⅔|iconv -tUCS2

但是失败了。

有人能帮帮我吗?

注意:我通常不使用Bash,所以如果这个问题真的很愚蠢,我很抱歉。

您可以使用命令展开来捕获eval的字符串:

eval "$(echo 捥潨吠卅⅔|iconv -tUCS2)"

如果您正在打高尔夫球,您可以使用backtics进一步缩短它,这里是字符串,如果结果命令不包含shell语法,您可以跳过eval:

`iconv -tUCS2<<<捥潨吠卅⅔`

它失败了,因为eval期望执行命令或表达式,而您必须使用echo -e来将文本管道传输到iconv

相关内容

  • 没有找到相关文章

最新更新