Здравствуйте,из-за чего этот код не выдает результат? $output = `quota -u domz | tail -n 1 | awk '{print $4}'`; echo "$output"; А если ввести другую команду,то работает.
Если напрямую,то результат есть. Работает любая команда,даже если просто прописать quota,то она выполнится с кода. А то что в теме почему-то вообще ничего не выдает.
1) Может это как-то связано с пользователем? В консоли ты работаешь как пользователь domz? А вебскрипт из-под www-data вероятно. Для чистоты эксперимента надо под ним же в консоли попробовать. 2) в $output наверное только stdout попадает, а stderr пролетает мимо. Понимаешь?
Ппц. Все процессы работают под каким-то пользователем. Код из первого сообщения ты на сайте запускаешь? Выполни там `whoami`. И в консоли тоже. Разница есть? Добавлено спустя 4 минуты 50 секунд: Консольные команды выводят нормальный результат в поток stdout, а текст ошибок в stderr. В консоли они оба попадают на экран. А при вызове как у тебя - не факт, что оба в одно место сливаются! Это в доках стоит проверить. Удачи в изысканиях! update: Оператор исполнения, так это называется, на самом деле вызывает функцию shell_exec(). Поэтому максимум инфы можно извлечь из описания и комментариев к этой функции: http://php.net/manual/ru/function.shell-exec Вот о чём я говорил: что-то там вероятно не так, но ты ошибку не видишь. Надо перенаправить поток stderr в stdout чтобы получить сообщение.