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

在传递 Linux bash-script 变量以执行 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


繁星淼淼
浏览 162回答 1
1回答

鸿蒙传说

Bash 需要双 ( ") 引号来解析变量,否则它们将保留$var,因此 php 会读取它们;file="$folderpath"somefile.phpmage_version=$(php -r "include \"${file}\";print_r(Mage::getVersionInfo());")如果您需要多行解决方案,您可以执行以下操作:在 Bash 中运行 PHP 函数(并将返回值保存在 bash 变量中)php_cwd=`/usr/bin/php << 'EOF'<?php echo getcwd(); ?>EOF`echo "$php_cwd" # Or do something else with it
打开App,查看更多内容
随时随地看视频慕课网APP