【问题标题】:Is there a scripting command that can execute a specific php method from a php file using a bash script是否有一个脚本命令可以使用 bash 脚本从 php 文件中执行特定的 php 方法
【发布时间】:2020-02-24 05:07:28
【问题描述】:

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

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

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

这是我目前所拥有的。

testBash.sh

INPUT="Bobby"

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

echo "$TEST"

hello-world.php

function helloWorld() {

    return "Hello, World!";

}

function helloName($name) {

    return "Hello, $name!";

}

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

例如:你好,鲍比!

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

【问题讨论】:

  • TEST=$(php -r "require 'hello-world.php'; echo helloName(\"$INPUT\");") 怎么样?不在 linux 电脑 atm 上,所以无法测试。
  • 哇,这正是我想要的。完美运行!能否详细说明一下?
  • 当然,我会添加这个作为答案并稍微解释一下,给我一分钟。

标签: php bash shell command-line command-line-interface


【解决方案1】:

应该这样做:

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

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

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

基本上,

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-27
    • 1970-01-01
    • 2021-02-12
    • 2015-08-22
    相关资源
    最近更新 更多