当前位置: 首页 > 知识库问答 >
问题:

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

曾嘉荣
2023-03-14

我需要帮助传递Linuxbash-cript变量来执行PHP CLI命令。

我正在编写bash脚本,该脚本执行phpcli命令,该命令从类似bash脚本的文件夹路径获取输入变量,以包含一个用于访问PHP文件类的文件。

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

共有1个答案

景恩
2023-03-14

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

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

更多内联bash信息

如果您需要多行解决方案,您可以这样做:在Bash中运行PHP函数(并将返回保留在bash变量中)

php_cwd=`/usr/bin/php << 'EOF'
<?php echo getcwd(); ?>
EOF`
echo "$php_cwd" # Or do something else with it
 类似资料:
  • 问题内容: 我有一个bash脚本a.sh,其中有一个python脚本b.py。python脚本计算某些内容,我希望它返回一个值,该值稍后将在a.sh中使用。我知道我能做 在a.sh中: 在b.py中: 但这不是那么方便,因为我还在b.py中打印了其他消息 有什么更好的方法吗? 编辑: 我现在正在做的只是 这意味着我可以在b.py中打印很多东西,但是只有最后一行(假设它不包含“ \ n”,这是最后一

  • 问题内容: 我有一个PHP文件,需要从命令行运行(通过crontab)。我需要传递给文件,但我不知道如何。我试过了: 但是返回了此错误: 无法打开输入文件:myfile.php?type = daily 我能做什么? 问题答案: 该参数(在结束了阵列)仅适用于网络访问的页面。 您需要像调用它一样,并从数组中检索该参数(为,因为为)。 如果该页面也用作网页,则可以考虑两个选项。使用shell脚本和w

  • 我有一个带有各种WP-CLI命令的bash脚本,可以运行备份、检查和优化数据库表、运行安全漏洞检查、检查可用的核心、插件和主题更新,然后通过电子邮件将报告发送给我。 如果我从命令行运行这个脚本,它可以完美地工作。但是,如果我调度一个cronjob,脚本将运行,但是所有WP命令的输出如下: /usr/local/bin/dev-maintention-check.bash:第70行:wp:comma

  • 为了使Playbook更灵活、通用性更强,允许用户在执行的时候传入变量的值,这个时候就需要用到“额外变量”。 定义命令行变量 在release.yml文件里,hosts和user都定义为变量,需要从命令行传递变量值。 --- - hosts: '{{ hosts }}' remote_user: '{{ user }}' tasks: - ... 使用命令行变量 在命令行里面传值

  • 问题内容: 我似乎无法从php中将变量传递给我的bash脚本。无论我如何尝试,$ uaddress和$ upassword都变为空。 *_ __ _ __ __ * __ __ bash * __ __ * * ** *_ __ _ __ * PHP __ * __ __ * __ ** *_ __ _ _ _输出和调试 _ _ _ * *_ 问题答案: 您需要将变量作为参数传递给Shell脚本,

  • 问题内容: 我希望能够使用ssh从我的机器上运行命令并传递环境变量 这是我正在尝试的: 是在进行ssh调用的计算机上设置的,并且由于该变量在远程主机上不存在,因此不会被提取。 如何传递的值? 问题答案: 如果您使用 代替 您的外壳程序会在将命令字符串发送到远程主机之前进行插值。