Как передать значение переменной из Bash в PHP?

170
18 марта 2018, 22:06

Есть PHP-скрипт, который вызывает системные команды; в нём нужно обработать некоторые данные, которые должен ввести пользователь. Пример на Bash:

#!/usr/bin/env bash
echo 'Enter something:'
read someString
echo ${someString}

Как получить значение переменной someString в PHP?

Не работает

#!/usr/bin/env php
<?php
echo 'Enter something:' . "\n";
system('read someString');
echo exec('echo ${someString}') . "\n";

Не работает

#!/usr/bin/env php
<?php
echo 'Enter something:' . "\n";
system('read someString');
echo getenv('someString') . "\n";

Не работает

#!/usr/bin/env php
<?php
echo 'Enter something:' . "\n";
$someString = exec('read someString');
echo $someString . "\n";

Не работает

#!/usr/bin/env php
<?php
echo 'Enter something:' . "\n";
$someString = shell_exec('read someString');
print_r($someString);

Единственный вариант, который я нашёл в интернете, это сохранить значение переменной в файл, а потом достать его оттуда:

#!/usr/bin/env php
<?php
echo 'Enter something:' . "\n";
system('read someString; echo -n ${someString} > /tmp/some-string');
$someString = file_get_contents('/tmp/some-string');
system('rm /tmp/some-string');
echo $someString . "\n"; // It works!

Седьмое чувство подсказывает, что это делается не так.

Answer 1

Так надо дергать bash через функцию shell-exec() http://php.net/manual/ru/function.shell-exec.php

READ ALSO
htacess - переадресация виртуальных ссылок с отловом гет параметров

htacess - переадресация виртуальных ссылок с отловом гет параметров

Приветствую друзьяЕсть одностраничный сайт, где единственная страница index

143
Laravel oAuth 2.0 Логика

Laravel oAuth 2.0 Логика

Добрый деньПодскажите, пожалуйста, а то я немного запутался

136
Возможно ли сохранить геоданные в базе данных? [требует правки]

Возможно ли сохранить геоданные в базе данных? [требует правки]

Подскажите пожалуйста возможно ли реализовать подобное?

148
помогите с изучением cxxtest

помогите с изучением cxxtest

Хочу начать изучение cxxtest, но не могу найти нормальную документацию/учебник/книгу на русском языке

183