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

如何将PHP变量传递给Shell脚本?,php,bash,shell,Php,Bash,Shell,可能重复: 我在shell脚本中运行一个php脚本 #! /bin/sh php file.php #! /bin/sh php config.php echo $test Shell将运行脚本并显示php脚本的输出,但是如何将php脚本中定义的变量传递到Shell脚本中以供使用(用于Shell的进一步处理) 例如,考虑一个的PHP文件 <?php $test = "something"; ?> 更新:建议的方法基于printing变量。我不喜欢打印任何内容,因为php脚

可能重复:

我在shell脚本中运行一个php脚本

#! /bin/sh

php file.php
#! /bin/sh

php config.php
echo $test
Shell将运行脚本并显示php脚本的输出,但是如何将php脚本中定义的变量传递到Shell脚本中以供使用(用于Shell的进一步处理)

例如,考虑一个

的PHP文件
<?php
$test = "something";
?>

更新:建议的方法基于
print
ing变量。我不喜欢打印任何内容,因为php脚本也有其他应用程序(要在其他php脚本中包含
d)。

您的php脚本可以打印shell样式的变量分配:

print("VAR1=foo\n");
print("VAR2=bar\n");
在shell脚本中,您需要评估这些分配,以便将它们导入到您的环境中:

. <(php file.php)

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

PHP:

saveIFS=$IFS
IFS=$'\n'
阅读-r-d''var1 var2查看此问题:
<?php
    print($test1 . "\n");
    print($test2 . "\n");
?>
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