php - 如何在 PHP 命令 (CLI) 中传递 bash 脚本变量值

标签 php linux bash

我需要帮助传递 Linux bash 脚本变量来执行 PHP CLI 命令。

我正在开发执行 PHP CLI 命令的 bash 脚本,该命令从 bash 脚本(如文件夹路径)获取输入变量,以包含用于访问 PHP 文件类的文件。

但是执行 bash 脚本时发生的情况是,传递给 PHP CLI 命令的变量充当 PHP 的变量。

下面是我的脚本的示例代码

file="$folderpath"somefile.php
mage_version=$(php -r 'include "$file";print_r(Mage::getVersionInfo());')

下面是我收到的错误

PHP Notice:  Undefined variable: file in Command line code on line 1
PHP Warning:  include(): Filename cannot be empty in Command line code on line 1

最佳答案

Bash 需要双引号 (") 来解析变量,否则它们将保留 $var,因此 php 会读取它们;

file="$folderpath"somefile.php
mage_version=$(php -r "include \"${file}\";print_r(Mage::getVersionInfo());")

More inline bash info

如果您需要多线解决方案,您可以执行以下操作:Run PHP function inside Bash (and keep the return in a bash variable)

php_cwd=`/usr/bin/php << 'EOF'
<?php echo getcwd(); ?>
EOF`
echo "$php_cwd" # Or do something else with it

关于php - 如何在 PHP 命令 (CLI) 中传递 bash 脚本变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57971340/

相关文章:

linux - 从/proc/返回信息的脚本

php - 将 $_POST 中包含的数组转换为 Yii 框架中的 MySql 查询

php - 如何从批处理文件执行 codeigniter Controller

php - 从数组中的每个值中删除破折号,然后重建数组

java - 如何防止 javac 输出中出现短文件名(8.3 格式)?

python - 删除默认 Python 2.7 后在 CentOS 上重新安装 Python

php - 如何将一个值插入数据库

c++ - 如何在 Linux 上编译 .cpp 文件?

linux - Linux 中进程的线程堆栈

linux - 使用 nmcli 以编程方式激活和停用网络接口(interface)