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

标签 php bash grep shell-exec

脚本:

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

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

文件 test.php 没有运行。

最佳答案

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

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

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

关于php - 为什么结果等于 0,有时等于 1 - shell_exec('pgrep -f,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51551908/

相关文章:

c++ - 调用 execl 时找不到 Grep

linux - 如何多次提取带有 or 条件的 HTML 标记之间的文本

javascript - 使用 AJAX 将变量传递给 php 脚本

javascript - 在 Zend Framework 1.12 中保存之前确认验证

php - 文件上传到服务器上的文件夹,但数据库表更新时没有 SQL 注入(inject)?

linux - 这可以在 SSH 中使用 bash 脚本作为用户身份验证横幅吗?

linux - shell 脚本中的函数未正确执行

linux - 使用 awk 或其他转换最后一列中的日期格式

c - 如何将 grep 测试划分为并行任务

php - 为什么 self 实现的快速排序比内部快速排序更快?