我在shell脚本中运行一个php脚本
#! /bin/sh
php file.php
Shell将运行脚本并显示php脚本的输出,但是如何将php脚本中定义的变量传递给shell脚本以供其中使用(以供shell进一步处理)?
例如,考虑一个
的php文件<?php
$test = "something";
?>
如何将$test
的值作为
#! /bin/sh
php config.php
echo $test
更新:建议的方法基于print
变量。我不想打印任何东西,因为php脚本也有其他应用程序(在其他php脚本中为include
d。)
答案 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
或其他变体。