Мысль дня

И даже не смей думать, что ты можешь не выдержать!

© Эрнест Хемингуэй

Обмен данными между скриптами 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:~$

Комментарии

5 лет назад

Александр

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

Архив

  1. 2022
    1. август
      1. Сайт восстановил работу
  2. 2021
    1. январь
      1. Kubntu Linux Opera: не работает видео
      2. Не обновляется FreeBSD со старой версии, ошибка «Cowardly»
  3. 2015
    1. сентябрь
      1. Ворона позирует
      2. Как сделать новость из ничего
    2. август
      1. Моё первое селфи
      2. Спам от Майкрософта
    3. июнь
      1. 1000
      2. Сельдерей
    4. май
      1. Сирень зацвела
      2. Ночное солнце
    5. апрель
      1. Ить-ить-ить-ить
    6. январь
      1. Разрыв VPN-соединения при нагрузке
  4. 2014
    1. декабрь
      1. Суровый холостяцкий смайл
    2. ноябрь
      1. Перечень IP–адресов в IPFW
      2. Длина строки правила IPFW во FreeBSD
    3. октябрь
      1. Свет в конце тоннеля
      2. Огоньки
    4. сентябрь
      1. Попал под раздачу
      2. Собираю чемодан
      3. Чьи–то уши торчат над холмом
      4. Увеличение свободного места на телефоне LG P500 Optimus One
      5. Места нет, но место есть
      6. Пластиковая Африка
    5. август
      1. Кошка в ванной
      2. В PHP функция возвращает NULL вместо данных
      3. В Оперу вернулись закладки!
      4. Убираем рамки вокруг экрана
      5. Загадочный дом
    6. июль
      1. Божьи коровы и прочие твари
      2. Человек собаке друг
    7. июнь
      1. Котоворот
      2. Древесная живность
      3. Шампунь
    8. апрель
      1. Еда
      2. Смайл
      3. Одуванчики
      4. Шашлычная история
      5. Кровавая Луна
      6. Старый пень
      7. Бриллиант
    9. март
      1. Лисапет наносит ответный удар
      2. Весна пришла или Лисапет 2
      3. Лисапет
      4. Запах весны
    10. январь
      1. Восстановление данных и лечение HDD с помощью dd во FreeBSD
      2. Новогодняя ёлка 2014
  5. 2013
    1. декабрь
      1. Ледяные короны
      2. Луна
    2. ноябрь
      1. Тарас Шевченко - І виріс я на чужині
      2. Увеличение раздела диска во FreeBSD
      3. Одна особенность работы freebsd-update
    3. октябрь
      1. Обзор телефона LG P500 Optimus One
      2. Призрачная трава
    4. сентябрь
      1. Подарок
      2. Мокрая, как мышь
      3. Пластиковое нашествие
      4. Использование переменных в шаблоне REGEXP
    5. август
      1. Файл конфигурации MPlayer
      2. Микширование аудиоканалов в MPlayer
      3. Спамеры тоже люди
      4. Распятый мексиканец
      5. Подсолнуховое море
      6. Подложили свинью
      7. Глобальное обновление
    6. апрель
      1. Завтрак
    7. март
      1. Пересылка всей почты другому пользователю
    8. январь
      1. Задолбали ссылки
      2. Xerox Phaser 6000 против Linux x86_64
  6. 2012
    1. декабрь
      1. Изогнутый айфон
    2. октябрь
      1. Собака бывает кусачей
    3. июнь
      1. Поддержка Monkey's Audio в Linux
      2. Поддержка чересстрочного VC–1 в 64–битном линуксе
      3. Моя кошка ловит мушку
      4. Диапазон IP–адресов в IPFW
    4. май
      1. Задушила меня жаба
    5. февраль
      1. Как закрыть и открыть порты во FreeBSD
    6. январь
      1. Обмен данными между скриптами shell и PHP
  7. 2011
    1. декабрь
      1. Пасхальное яйцо в Muon
    2. ноябрь
      1. Windows XP и NFS
      2. От природы не уйдёшь
    3. октябрь
      1. Swappiness
      2. Бодания с Ubuntu 11.10
      3. Подпишись, не будь упырём!
      4. Установка Ubuntu на RAID 0
      5. Кодинг на сон грядущий
    4. сентябрь
      1. Аську! Больше асек!
      2. Разбитое сердце
      3. Привет из параллельной вселенной
      4. Карточный домик
    5. август
      1. Обзор ноутбука ASUS 1215B
    6. июль
      1. Работает–ли компьютер без видеокарты?
    7. июнь
      1. Частушка на злободневную тему
    8. май
      1. Как–то в прошлой жизни…
    9. март
      1. 8 марта
      2. Планшеты
      3. Цветы
  8. 2010
    1. декабрь
      1. Типа динамическая маршрутизация
    2. ноябрь
      1. Закрытые порты или бодания с FreeBSD
      2. Мой новый старый комп
      3. Глюк с кодировкой в MySQL
      4. Ёжик в тумане
    3. август
      1. Кукурузное счастье
    4. май
      1. День победы 2010
      2. Не пора–ли менять браузер?
      3. Оптимизация дисковой системы в Linux
  9. 2009
    1. ноябрь
      1. Перенос системы на другой жёсткий диск
    2. август
      1. Выбор HTML–редактора под линукс
      2. Сходим в оперу?
      3. Линукс
      4. 4:00
    3. июль
      1. Семантичеcкие URL
      2. Браузеры под раздачей
      3. Графика
      4. Достало!
      5. Где–то там море
      6. С чего всё началось
      7. Начало

Поделиться

Комментировать