【问题标题】:Run PHP function inside Bash (and keep the return in a bash variable)在 Bash 中运行 PHP 函数(并将返回值保存在 bash 变量中)
【发布时间】:2011-09-08 02:06:02
【问题描述】:

我正在尝试在 Bash 中运行 PHP 函数...但它不起作用。

#! /bin/bash

/usr/bin/php << 'EOF'
<?php echo getcwd(); ?>
EOF

实际上,我需要将返回值保存在 bash 变量中...顺便说一下,我使用 php 的 getcwd() 函数只是为了说明 bash 操作。

更新:有没有办法传递变量?

VAR='/$#'
php_cwd=`/usr/bin/php << 'EOF'
<?php echo preg_quote($VAR); ?>
EOF`
echo "$php_cwd"

有什么想法吗?

【问题讨论】:

  • 请不要编辑答案来添加您的问题。而是编辑编辑您自己的问题并对答案发表评论。

标签: bash php


【解决方案1】:

我有一个问题 - 为什么不使用函数在 bash 中打印当前工作目录? 喜欢:

#!/bin/bash
pwd # prints current working directory.

或者

#!/bin/bash
variable=`pwd`
echo $variable

已编辑:上面的代码更改为可以正常工作。

【讨论】:

  • 这真的不能回答 OP 的问题。该代码也不会产生 OP 的预期输出。最后,问题应该是 cmets,而不是答案。
  • 嗯,老实说,这是一个反问。好吧,我打错了代码的第二部分,现在要对其进行编辑以使其可以工作。对于您评论的第一部分 - 是的,它并没有按照发布者想要的方式绝对严格地回答问题,但是 - 如果他/她想将其保存为 bash 变量,为什么要使用 php??
  • 我使用 php 的 getcwd() 函数只是为了说明 bash 操作。这只是一个使问题更简单的常见示例。
  • 哦,我很抱歉@netcoder,@Roger。在我看来,在 bash 中使用 php 有点奇怪,所以我以为您正在寻找一种获取路径的方法。
  • 我是必须道歉的人。
【解决方案2】:

使用 php 命令行的“-R”。它有一个读取输入的内置变量。

VAR='/$#'
php_cwd=$(echo $VAR | php -R 'echo preg_quote($argn);')
echo $php_cwd

【讨论】:

    【解决方案3】:

    这是您可以在 shell 中内联 PHP 命令的方法,即 *sh:

    #!/bin/bash
    
    export VAR="variable_value"
    php_out=$(php << 'EOF'
    <?
        echo getenv("VAR"); //input
    ?>
    EOF)
    >&2 echo "php_out: $php_out"; #output
    

    【讨论】:

      【解决方案4】:

      这对我有用:

      VAR='/$#'
      php_cwd=`/usr/bin/php << EOF
      <?php echo preg_quote("$VAR"); ?>
      EOF`
      echo "$php_cwd"
      

      【讨论】:

        【解决方案5】:

        或者:

        php_cwd = `php -r 'echo getcwd();'`
        

        替换 getcwd();根据需要使用您的 php 代码调用。

        编辑:David Chan 的 ninja'd。

        【讨论】:

          【解决方案6】:
          PHP_OUT=`php -r 'echo phpinfo();'`
          echo $PHP_OUT;
          

          【讨论】:

            【解决方案7】:
            php_cwd=`/usr/bin/php << 'EOF'
            <?php echo getcwd(); ?>
            EOF`
            echo "$php_cwd" # Or do something else with it
            

            【讨论】:

              猜你喜欢
              • 2013-02-07
              • 2023-03-16
              • 1970-01-01
              • 2019-05-01
              • 1970-01-01
              • 2018-07-15
              • 2017-07-03
              • 1970-01-01
              • 2021-11-19
              相关资源
              最近更新 更多