如何获取 bash 文件来渲染 php 常量


How to get bash files to render php constants?

>有谁知道如何让bash文件来渲染php常量?例如,如果我创建一个包含的 php 文件,

define('__ROOT__', dirname(dirname(__FILE__))); 
define("APPDIR", dirname(__FILE__).'/');
define("VIEW", APPDIR.'views/');
echo APPDIR;

然后,我创建一个包含以下内容的 shell 脚本:

echo "Good morning, world."
APPDIR = '/var/www/site-root'
export APPDIR
`php -e test.php`

我正在尝试查看当我运行然后执行 php 脚本的 shell 脚本时,它是否确认了在 PHP 中设置的常量。现在,php 中的 echo 语句打印出"APPDIR"而不是/var/www/site-root。

问题是我有询问 php 代码的 shell crons,并且有一系列 require,包括具有构造其文件路径的常量。我需要外壳来遵守这些常量。我不得不使用 php $variable = "path" 来获取 Web 应用程序和 crons 以便能够找到执行所需的所有文件。

如您所见,我尝试从 shell 导出变量并使其成为可供 bash 和 php 使用的环境变量,但无济于事。

想法

,想法?谢谢

使用 getenv() php 指令

以下是类似问题的答案:将变量从 PHP 导出到 shell

如果您尝试将一些输出传递给 shell 变量, 你可以这样做:

$ testvar=$(php -r 'print "hello"')
$ echo $testvar
hello 显示导出如何影响事物:

$ php -r '$a=getenv("testvar"); print $a;'
$ export testvar
$ php -r '$a=getenv("testvar"); print $a;' '你好

您可以将变量作为命令行参数传递给 php,或者在 php 中使用 getenv() 来读取环境变量。

<?php
define("APPDIR",getenv("APPDIR"));
?>