>有谁知道如何让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"));
?>