首页 > 解决方案 > 是否有一个脚本命令可以使用 bash 脚本从 php 文件执行特定的 php 方法

问题描述

我相信标题不言自明,但我会详细说明。我有一个名为 hello-world.php 的 php 文件。我还有一个名为 testBash.sh 的 bash 脚本。

hello-world.php我有两个方法helloWorld()helloName($name)

基本上我想做的是在我的 bash 脚本(testBash.sh)中......我想传入参数并执行helloName($name)方法。该参数将从 bash 脚本中给出。

这是我到目前为止所拥有的。

测试bash.sh

INPUT="Bobby"

// THIS IS WHERE I AM HAVING TROUBLE
TEST= php -r "require 'hello-world.php'; helloName("$INPUT");"

echo "$TEST"

你好世界.php

function helloWorld() {

    return "Hello, World!";

}

function helloName($name) {

    return "Hello, $name!";

}

在一个完美的世界中,当我回显“$TEST”时,应该显示该函数的结果。

例如:你好,鲍比!

这可能吗?我在网上寻找解决方案,但这是我找到的最接近的解决方案。任何意见或建议都会很棒。谢谢!

标签: phpbashshellcommand-linecommand-line-interface

解决方案


这应该这样做:

TEST=$(php -r "require 'hello-world.php'; echo helloName(\"$INPUT\");")

我想这也应该有效(函数参数的单引号):

TEST=$(php -r "require 'hello-world.php'; echo helloName('$INPUT');")

基本上,

  • 添加echoPHP 确保 php 命令将结果发送helloName到输出,
  • $(command)告诉 bash 命令将其输出作为值返回,
  • 该值最终分配给TEST

推荐阅读