首页 > 解决方案 > 使用 > /dev/null 将不明确的数字输出到控制台

问题描述

所以我需要通过命令行(使用exec)运行一个后台进程,同时将参数传递给执行的PHP脚本。

在继续之前,我将展示我的脚本以便更好地理解发生了什么:

var_dump($argv);
exit;

要获得要传递的参数很简单,只需要:

$ php -q test.php foo bar

正如预期的那样,这将输出:

array(2){
    [0] => string(11) "test.php"
    [1] => string(3) "foo"
    [2] => string(3) "bar"
}

但是,为了异步运行脚本,我需要的命令是:

$ php -q test.php foo bar >/dev/null 2>/dev/null &

但是由于某种原因,每次执行命令时它都会输出一个与此类似的任意数字:

[1] 79401

我一直在寻找解决方案,但在手头的问题上找不到任何东西。

感谢所有帮助。

标签: phpbashcommand-lineterminal

解决方案


正如 danlor 所说,它是 PHP 脚本的进程 ID。在命令末尾使用 '&' 意味着 shell 应该在后台运行命令,因此 shell 会告诉您进程的 PID。您还可以使用 "> /dev/null" 和 "2> /dev/null" 来抑制到 stdout 和 stderr 的任何输出。


推荐阅读