我在一个项目中找到了这一行:
exec('php '.$myPath."/somefile.php bah blha blha --myparam=$param > /dev/null 2>&1 < /dev/null &";)
这条线是什么意思?
我知道它运行一个somefile.php
带有参数的myparam
,但那是这些部分:/dev/null 2>&1 < /dev/null &
,bah blha blha
?
所有有问题的语法都是 bash 语法。您可以从这里开始了解更多信息。
但是,这里有一点解释:
> /dev/null
意味着输出被重定向到 /dev/null 这意味着程序的输出将被丢弃
2>&1
表示stderr 被重定向到stdout。由于标准输出被丢弃,错误也将被丢弃。
< /dev/null
意味着 /dev/null 被传送到程序的标准输入 - 实际上什么都不是。
&
在该行的末尾意味着程序应该在后台运行是什么使 exec 立即返回
/dev/null 是一个黑洞,似乎将结果发送到 STDOUT(标准输出,通常是您的屏幕)和 STDERR(标准错误)发送到黑洞。所以总而言之,它什么也没做。