如何将PHP变量传递给Shell脚本?

4
可能重复:
如何使用shell传递参数给php 我正在shell脚本中运行一个php脚本,如下:
#! /bin/sh

php file.php

Shell将运行脚本并显示php脚本的输出,但我如何将在php脚本中定义的变量传递到shell脚本中以供进一步处理(由shell进行)?
例如,考虑一个php文件:
<?php
$test = "something";
?>

我该如何将$test的值传递给shell脚本?

#! /bin/sh

php config.php
echo $test

更新:建议使用的方法是基于输出变量print。我不愿意打印任何东西,因为php脚本也有其他用途(被包含在其他php脚本中)。


2
请参考此问题:https://dev59.com/SFPTa4cB1Zd3GeqPkZBh - chiborg
2个回答

3

您的PHP脚本可以打印类似于shell的变量赋值:

print("VAR1=foo\n");
print("VAR2=bar\n");

在您的shell脚本中,您需要评估这些分配,以便将它们导入到您的环境中:

. <(php file.php)

1

您的PHP脚本可以打印值,您的shell脚本可以使用过程或命令替换或read来检索值。

PHP:

<?php
    print($test1 . "\n");
    print($test2 . "\n");
?>

Bash:

while read -r line
do
    something_with "$line"
done < <(php_script)

或者

saveIFS=$IFS
IFS=$'\n'
array=($(php_script))
IFS=$saveIFS

或者

saveIFS=$IFS
IFS=$'\n'
read -r -d '' var1 var2 <<< "$(php_script)"
IFS=$saveIFS

或其他变体。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接