为什么结果等于0有时等于1-shell_exec('pgrep -f

时间:2018-07-27 06:23:00

标签: php bash grep shell-exec

脚本:

$S = 'pgrep -f test.php | wc -l';
$U = trim(shell_exec($S));
echo $U;

为什么此脚本的结果等于0,有时等于1

文件test.php未运行。

1 个答案:

答案 0 :(得分:3)

问题是执行命令pgrep -f test.php | wc -l时,它有时会在结果中显示出来(取决于时间)。您可以根据a question on Linux & Unix SE使用以下语法来防止这种情况:

pgrep -f '[t]est.php' | wc -l

带有括号的部分基本上说“找到字母 t ,后跟 est.php ”,如果文件正在运行,它将找到该文件,但不匹配当前执行的命令,因为t之后是括号[