Обмен данными между скриптами shell и PHP

Возникла интересная задача, организовать обмен данными между скриптом оболочки и скриптом PHP. Идея вот в чём: скрипт оболочки выполняет некую программу, в процессе чего запускает PHP–скрипт, затем получает результат его выполнения и как–то обрабатывает.

Зачем понадобилось городить такой огород — понятия не имею. :) Но задача есть задача, а значит необходимо решить. Вот и решение:

Это PHP–скрипт, который выполняя некую программу, возвращает результат в строке 2.

  1. <?php
  2.   print(`echo 123`);
  3. ?> 

Это SH–скрипт, который выполняет некую программу, в процессе которой, в строке 3 присваивает переменной data_from_php_script значение, которое возвращает здесь же запущеный PHP–скрипт. Затем с полученными данными, в строке 5 производится операция сравнения с эталонными данными. Затем, в зависимости от полученных результатов на предыдущем шаге, если всё прошло успешно мы получаем результат it works!, а если что–то пошло не так — something wrong…:

  1. #! /bin/sh
  2.  
  3. data_from_php_script=`php "/home/gva/file.php"`
  4.  
  5. if [ $data_from_php_script -eq 123 ]; then
  6.   echo "it works!"
  7. else
  8.   echo "something wrong…"
  9. fi

Это результат выполнения SH–скрипта:

  1. gva@gva–VirtualBox:~$ ~/file.sh
  2. it works!
  3. gva@gva–VirtualBox:~$

Комментарии

1 год назад

Александр

1 год назад
А зачем нужен и что обозначает символ ` в строке data_from_php_script=`php?
Комментировать