技术解析

eval 执行的字符串中有特殊字符怎么处理?
0
2021-07-09 21:25:13
idczone
比如:
x = "echo x\\y\\z"
eval $x
输出是:xyz,而不是想要的x\y\z

再比如:
x = "echo x\\y\\z'a"
eval $x
执行出错,因为里面有个'。
\\\\
\\\'

$x = "echo 'x\\y\\z';";
eval($x);
echo 的东西单引号一下?

x = "echo x\\y\\z"
eval $x
这个不报错?

1L + 1 ,遇到这种情况只需要加一层反斜杠就好了。。

换成单引号就行
eval 'echo x\\y\\z'
x\y\z
双引号的话,一开始 shell 解释就去掉了一层 \\,然后 eval 再解释一次就没了

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服