php вызов проблемы с bash - PullRequest
       17

php вызов проблемы с bash

0 голосов
/ 21 января 2009

У меня есть этот простой скрипт PHP

<code><?php
echo '<pre>';

// Outputs all the result of shellcommand "ls", and returns
// the last output line into $last_line. Stores the return value
// of the shell command in $retval.
$last_line = $output = system ("~/public_html/cgi-bin/srch.sh &> ~/public_html/errors.txt",$retval);

// Printing additional info
echo '

Последняя строка вывода: '. $ last_line. '
Возвращаемое значение: '. $ RetVal; ?>

Что зависит от srch.sh:

#!/bin/bash

for i in ~/mail/home/user/mail/domain.com/josh/cur/*
do
grep -i Value $i . &> ~/public_html/yesno.txt;
done

Однако все, что отображается в b rowser - это Retval 1, и ни в один из текстовых файлов не записывается ошибка. Я неправильно смешал stderr и stdout или пропустил что-то еще?

1 Ответ

1 голос
/ 21 января 2009

$last_line = $output = system ("~/public_html/cgi-bin/srch.sh &> ~/public_html/errors.txt",$retval);

В приведенной выше строке запускается srch.sh и перенаправляет все выходные данные , которые он выдает в error.txt. Следовательно, не осталось выходных данных для присваивания $ output (и $ last_line). Вы найдете свою последнюю строку (вместе с остальными выходными данными) в файле errors.txt.

Если нет, попробуйте запустить скрипт оболочки напрямую и посмотреть, выводит ли он вообще какой-либо вывод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...