首页 > 解决方案 > 为什么结果等于 0 有时等于 1 - shell_exec('pgrep -f

问题描述

剧本:

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

0为什么这个脚本的结果有时等于和1

该文件test.php未运行。

标签: phpbashgrepshell-exec

解决方案


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

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

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


推荐阅读