我使用shell_exec/dd/dev/urandom从php(通过网页(生成密码。我想消除"/
我生成的密码中的字符。
如果我用替换我的sed生产线
's/["/]/!/g'
脚本无法执行。然而,我从命令行测试了这一点,比如
echo "this /is "a test" | sed -e 's/["/]/!/g'
然后我得到了正确的结果:这个!是一测试
如果我从sed行中删除这个替换部分,php脚本确实可以正常执行。问题出在哪里?我认为括号[]内的字符是安全的,不需要转义。。这就是问题所在吗?
在PHP中,如果在双引号字符串文本中使用该命令,则需要用一个反斜杠"
转义"
,并且括号表达式中的反斜杠也必须转义。
最后,这一定看起来像
sed 's/["/\]/!/g'