Я пытаюсь запустить скрипт bash из PHP. Когда я запускаю его из командной строки - все работает, когда я передаю ту же команду exec() - происходит что-то неожиданное.Различные результаты запуска сценария из командной строки и php
Сценарий усредняет файлы изображений, переданные из третьего аргумента. Первый аргумент - это каталог, второй - файл результата.
Баш скрипт:
#!/bin/bash
DIR=$1
avg_file=$2
i=0
for file in "[email protected]"; do
if [ $i -eq 0 ]; then
:
elif [ $i -eq 1 ]; then
:
elif [ $i -eq 2 ]; then
# If first file - just copy to result
cp ${DIR}${file} ${DIR}${avg_file}
else
# Merge current file with result
convert ${DIR}${file} ${DIR}${avg_file} -fx "(u+($i-2)*v)/$[$i-1]" ${DIR}${avg_file}
fi
i=$[$i+1]
done
При вызове сценария с помощью командной строки с:
/path/to/script.sh /path/to/images average.png image/1.png image/2.png"
он отлично работает и усредняет изображений average.png, но при вызове с помощью PHP:
exec("/path/to/script.sh /path/to/images average.png image/1.png image/2.png")
, похоже, заменяет average.png первым переданным изображением, и это он. Я попытался отладить его, и, похоже, он прошел все аргументы.
В чем может быть причина проблемы?
* Отредактировано: обновленный новообращенный е-ион, как это выглядит на самом деле
вы могли бы сделать это с помощью PHP вместо Баш –
печати все параметры, переданные: эхо $ @ – crafter
@Dagon я мог бы, потому что я действительно думаю, что я бежал из вариантов здесь отладки этого сценария , – Varis