4

可能重复:
使用 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 脚本也有其他应用程序(include在其他 php 脚本中是 d)。

4

2 回答 2

3

你的 PHP 脚本可以打印 shell 风格的变量赋值:

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

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

. <(php file.php)
于 2012-05-29T12:05:04.817 回答
1

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

或其他变体。

于 2012-05-29T12:41:43.230 回答