Я пытаюсь передавать аргументы туда и обратно, из оболочки в PHP и обратно. В моем простом тесте я легко перехожу из оболочки в PHP, но мне не удается вернуть строки. Я пробовал и escapeshellarg, и escapeshellcmd, но ни один из них не работал.
Оболочка
#!/bin/sh
# set a date and time variables, in the form of YYYY-MM-DD and HH:MM:SS
dateVar=`date +%Y-%m-%d`
timeVar=`date +%H_%M`
# Launching PHP
runPHP=`which php`
$runPHP calledPHP.php $timeVar $dateVar
# Returned from PHP
passTime=$1
echo "$passTime"
passDate=$2
echo "$passDate"
PHP
<?php
setlocale(LC_CTYPE, "en_US.UTF-8");
echo "PHP called.\n";
$logTime = $argv[1]."\n";
// echo $logTime;
$logDate = $argv[2]."\n";
// echo $logDate;
$passTime = escapeshellarg('Time: $logTime');
$passDate = escapeshellarg('Date: '.$logDate);
?>
Запустив оболочку, единственное эхо, которое она возвращает, это «PHP вызывается». Как видите, я пробовал два разных синтаксиса в последних двух переменных php. Ни то, ни другое не работает. Есть ли лучшая функция для этого? Или я просто использую неправильный синтаксис?
Спасибо заранее за любые предложения
php called
эха. И ваша строка$logTime
неверна. Строки в'
-кавычках в PHP НЕ интерполируют переменные. ваш$passTime
будет буквально содержать$
,l
,o
,g
и т. д. - person Marc B   schedule 03.09.2014$passDate
, и он показался мне правильным, но я согласен со строкой в кавычках'
. Я попробовал это только для полноты, потому что это был рабочий пример, который я нашел, хотя он явно не работал для меня. На самом деле я не пытаюсь получить какой-либо вывод как таковой из PHP, за исключением передачи строки из PHP обратно в охватывающий сценарий оболочки. - person LOlliffe   schedule 03.09.2014