我尝试使用exec函数直接从index.php发送shell命令,如下所示:
exec('shopt -s extglob && cd /opt/lampp/htdocs/testes/xml/ && rm !(*.xml)');
但是,xampp在日志中返回一个错误:
sh: -c: line 1: syntax error near unexpected token `('
sh: -c: line 1: `rm !(*.xml)'
我已经允许xampp通过exec向机器发送命令。其他命令(如仅删除不符合!()
条件的文件)也可以正常工作。
当我直接通过Linux终端写rm !(*.xml)
时工作正常。
1条答案
按热度按时间gr8qqesn1#
错误信息为**
sh:
**...shopt -s extglob
和extended globbing是bash
的扩展。exec
函数似乎使用了POSIX shell,而不是bash
,所以不能直接使用bash
特定的代码。尝试这样说
或者更好的方法是将代码放入带有解释器规范的
bash
脚本文件中和使用