У меня есть сценарий deploy.sh
оболочки, которая имеет следующее содержание: -Выполнение сценария оболочки с помощью PHP
echo "0 Importing the code"
eval "git pull -u origin master"
echo "1 Backing up existing data in database.."
// -- other code follows here
Когда я выполнить скрипт непосредственно с помощью терминала, я получаю следующий результат: -
0 Importing the code
remote: Counting objects: 5, done. remote: Compressing objects: 100% (2/2), done. remote: Total 3 (delta 1), reused 0 (delta 0) Unpacking objects: 100% (3/3), done. From bitbucket.org:user/repo * branch master -> FETCH_HEAD Updating db13xxx..6705xxx
1 Backing up existing data in database..
Это правильно. Тем не менее, я написал скрипт PHP, с помощью которого я могу активировать скрипт deploy.sh по http. Содержание этой страницы PHP выглядит следующим образом: -
$output = `./deploy.sh`;
echo '<pre>', $output, '</pre>';
Когда я вызываю этот PHP файл через браузер, сценарий оболочки на самом деле получения вызова, и я получаю следующий результат: -
0 Importing the code 1 Backing up existing data in database..
Проблема заключается в том, что команда eval "git pull -u origin master"
не была выполнена и ее вывод не показан. Любая идея, в чем проблема?
ли 'eval' необходимо? Не могли бы вы просто запустить 'echo '0'; git pull -u origin master'; echo '1'' и т. д. – Armand
@Alison, после того как я сказал, я попытался удалить eval.Он по-прежнему запускается при непосредственном вызове, но тот же результат при прохождении через php-страницу. – Sparky
Вы пытались добавить '#!/Bin/bash' в начало скрипта? – Armand