2
Это на самом деле сочетание PHP и Баш:Нужна помощь в понимании команды Баш
exec(sprintf("%s > %s 2>&1 & echo $! >> %s", $cmd, $outputfile, $pidfile));
Я не понимаю, что 2>&1 & echo $!
там для?
Это на самом деле сочетание PHP и Баш:Нужна помощь в понимании команды Баш
exec(sprintf("%s > %s 2>&1 & echo $! >> %s", $cmd, $outputfile, $pidfile));
Я не понимаю, что 2>&1 & echo $!
там для?
2>&1
redirects stderr to stdout и $!
"Expands to the process ID of the most recently executed background (asynchronous) command".
Итак, вот что происходит:
$cmd
в файл с именем $outputfile
. Если вы не сделали 2>&1
, вы не сможете прочитать вывод stderr в файле.&
означает, что процесс runs in the background.$cmd
(полученный через $!
) до конца $pidfile
.
Значит, вы имеете в виду, что он фактически выполняет две команды внутри линии? – user198729
Да, это так: '$ cmd' и' echo' – mouviciel