开发者社区 问答 正文

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

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

我正在处理执行PHP CLI命令的bash脚本,该命令从bash-script(如folder-path)获取输入变量,以包含用于访问PHP文件类的文件。

但是,执行bash-script时会发生的事情是传递给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

展开
收起
被纵养的懒猫 2019-09-17 17:34:03 800 分享 版权
阿里云 AI 助理回答

在Bash脚本中,当你需要将变量嵌入到字符串中并传递给其他命令时,你需要确保正确地引用和展开这些变量。你的问题在于双引号没有正确包围 $file 变量,导致PHP无法识别它作为外部传入的路径。你应该这样修改你的脚本:

folderpath="/path/to/your/folder"  # 确保这个变量已经定义且赋值正确
file="$folderpath/somefile.php"
mage_version=$(php -r "include '$file';print_r(Mage::getVersionInfo());")

这里的关键更改是使用了外层单引号 '...'$file'...' 来包围整个PHP代码字符串,并在 $file 变量周围保留了双引号 "$file" 以确保其在Bash中的正确展开。这样的语法让Bash先解析 $file 变量,然后将其值传递给PHP命令。

请确保在实际使用前,$folderpath 已经被赋予了一个有效的路径值。如果路径中包含空格等特殊字符,这种方式也能正确处理。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
问答地址: