通过* NIX shell脚本中的八进制值引用的字符 – 让它们被parsing?

我有一个绝对100%的剧本要以这种荒谬的方式来完成:

echo $'\ 150 \ 151 \ 073 \ 145 \ 143 \ 150 \ 157'$'\ 171 \ 141 \ 171'
(未编码:回声你好;回声耶)

问题是echo之后的所有内容都被认为是一个参数,所以分号和第二个echo命令也被输出。 有什么办法可以让shell真正parsing分号并分解这两个命令吗?

你可以在'\ 073'之前用NULL字符来尝试:

echo $'\150\151\0\073\145\143\150\157' $'\171\141\171 

这样shell就会parsing';'

输出将是:

 hi yay 

并不是

 hi yay 

eval ? 反引号? 按每一行之间input? sh -c$() ? 还有其他的东西吗? 不知道你为什么要这样做,我们不能提供很多select,因为我们不知道你能用什么。

由于我没有login,所以不让我回复评论。

无论如何,所有的东西都必须用八行字符input。 没有`,没有$(没有进入,也没有eval,它是八进制或者什么也没有。

…我也不能编辑以前的消息。

我试过空字节,但它只是终止该string – 不是回声命令。 你的例子不会导致两个单独的命令,而是一个命令。 这是我后面的两个命令。