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

时间:2012-05-29 11:39:54

标签: php bash shell

  

可能重复:
  pass parameters to php with shell

我在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脚本中为include d。)

2 个答案:

答案 0 :(得分:3)

您的PHP脚本可以打印shell样式的变量赋值:

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

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

. <(php file.php)

答案 1 :(得分:0)

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

PHP:

<?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

或其他变体。