如果您使用以下代码创建一个简单的 php 脚本:
shell_exec('"');
并运行它:
php myscript.php
它在我的 Mac 上的 bash 中给出以下错误:
sh: -c: line 0: unexpected EOF while looking for matching `"'
sh: -c: line 1: syntax error: unexpected end of file
我已经尝试了我能想到的一切:
ob_start();
@shell_exec('"');
ob_end_clean();
@shell_exec('" 2> /dev/null');
但无论我怎么尝试,我都无法压制这条信息。问题是我正在创建一个单元测试来对通用工具的 $argc、$argv 和 getopt() 命令进行压力测试,并且我需要使用包含随机字符(如“”)的各种输入来调用脚本数百次=:等等。
所以我需要能够抑制错误输出,或者检测不平衡的引号并将 ' 或 " 附加到字符串的末尾。我发现这个正则表达式可以检测单引号和双引号字符串:
但是对于一个混合了带引号和不带引号的参数的通用 bash 命令,我无法想象如何执行此操作。是否有内置命令可以告诉我字符串是否可以接受而不会引发错误?然后我可以尝试附加“'”或“”',我相当肯定其中一个会关闭字符串。我现在只关心防止错误消息,因为我只是在随机输入此时的脚本。
谢谢!