Возникла интересная задача, организовать обмен данными между скриптом оболочки и скриптом PHP. Идея вот в чём: скрипт оболочки выполняет некую программу, в процессе чего запускает PHP–скрипт, затем получает результат его выполнения и как–то обрабатывает.
Зачем понадобилось городить такой огород — понятия не имею. :) Но задача есть задача, а значит необходимо решить. Вот и решение:
Это PHP–скрипт, который выполняя некую программу, возвращает результат в строке 2.
- <?php
- print(`echo 123`);
- ?>
Это SH–скрипт, который выполняет некую программу, в процессе которой, в строке 3 присваивает переменной data_from_php_script значение, которое возвращает здесь же запущеный PHP–скрипт. Затем с полученными данными, в строке 5 производится операция сравнения с эталонными данными. Затем, в зависимости от полученных результатов на предыдущем шаге, если всё прошло успешно мы получаем результат it works!, а если что–то пошло не так — something wrong…:
- #! /bin/sh
- data_from_php_script=`php "/home/gva/file.php"`
- if [ $data_from_php_script -eq 123 ]; then
- echo "it works!"
- else
- echo "something wrong…"
- fi
Это результат выполнения SH–скрипта:
- gva@gva–VirtualBox:~$ ~/file.sh
- it works!
- gva@gva–VirtualBox:~$