【问题标题】:How to pass PHP variables to Shell Script? [duplicate]如何将 PHP 变量传递给 Shell 脚本? [复制]
【发布时间】:2012-06-03 15:10:38
【问题描述】:

可能重复:
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

更新:建议的方法基于printing 变量。我不想打印任何东西,因为 php 脚本也有其他应用程序(在其他 php 脚本中是 included)。

【问题讨论】:

标签: php bash shell


【解决方案1】:

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

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

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

. <(php file.php)

【讨论】:

    【解决方案2】:

    您的 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
    

    或其他变体。

    【讨论】:

      相关资源