如何将PHP变量传递给Shell Script


How to pass PHP variables to Shell Script?

可能的重复项:
使用 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 脚本中include)。

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

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

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

. <(php file.php)
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

或其他变体。