отправить вывод команды оболочки, запущенной из скрипта, в файл журнала

У меня есть страница php, которая создает скрипт оболочки, который запускается после создания той же самой страницы php, внутри у меня есть одна из многих команд, которые я хочу отправить процессу в журнал, который не работает, в то время как другие на самом деле работают ….

<php
$scriptfile = script.sh;
$logfile = process.log;
$imgfile = image.ppm;

//this one works, it sends the output to the log file
$cmd ="Scripts/convert.sh file.doc > $logfile \\\n";
file_put_contents($scriptfile, $cmd, FILE_APPEND | LOCK_EX);

//this one does not work, it does not send the output to the log file and stops the process
$cmd = "&& for i in $(seq --format=%003.f 0 $(( $(ls -1 | wc -l) -1 )) ); do echo doing OCR on page \$i; tesseract $imgfile-\$i.ppm $imgfile-\$i -l eng; done >> $logfile";
file_put_contents($scriptfile, $cmd, FILE_APPEND | LOCK_EX);

$cmd = "/bin/sh  $scriptfile > /dev/null 2>&1 &";
shell_exec($cmd);
?>

Я пробовал неработающую команду из оболочки, и она отправляет вывод в файл журнала, либо так:

for i in $(seq --format=%003.f 0 $(( $(ls -1 | wc -l) -1 )) ); do echo doing OCR on page $i; tesseract image-$i.ppm image-\$i -l eng; done >> process.log

или так:

for i in $(seq --format=%003.f 0 $(( $(ls -1 | wc -l) -1 )) ); do echo doing OCR on page $i >> process.log; tesseract image-$i.ppm image-\$i -l eng; done

И здесь вы видите, как выглядит скрипт оболочки после того, как он был создан php:

#! /bin/sh
Scripts/convert.sh file.doc >> process.log \
&& for i in $(seq --format=%003.f 0 $(( $(ls -1 | wc -l) -1 )) ); do echo doing OCR on page $i; tesseract image-000.ppm image-$i -l eng; done >> process.log

Итак, мой вопрос, что может быть не так, я уже пробовал много разных вещей, но, к сожалению, безуспешно, любая помощь или совет будут очень приветствоваться! спасибо теперь !!

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]