如何将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