Run PHP function inside Bash (and keep the return in a bash variable)

后端 未结 7 1886
故里飘歌
故里飘歌 2020-12-29 14:35

I am trying to run a PHP function inside Bash... but it is not working.

#! /bin/bash

/usr/bin/php << \'EOF\'

EOF
         


        
相关标签:
7条回答
  • 2020-12-29 14:58

    This is how you can inline PHP commands within the shell i.e. *sh:

    #!/bin/bash
    
    export VAR="variable_value"
    php_out=$(php << 'EOF'
    <?
        echo getenv("VAR"); //input
    ?>
    EOF)
    >&2 echo "php_out: $php_out"; #output
    
    0 讨论(0)
  • 2020-12-29 14:58

    This is what worked for me:

    VAR='/$#'
    php_cwd=`/usr/bin/php << EOF
    <?php echo preg_quote("$VAR"); ?>
    EOF`
    echo "$php_cwd"
    
    0 讨论(0)
  • 2020-12-29 14:59

    Use '-R' of php command line. It has a build-in variable that reads inputs.

    VAR='/$#'
    php_cwd=$(echo $VAR | php -R 'echo preg_quote($argn);')
    echo $php_cwd
    
    0 讨论(0)
  • 2020-12-29 15:03

    Alternatively:

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

    replace the getcwd(); call with your php code as necessary.

    EDIT: ninja'd by David Chan.

    0 讨论(0)
  • 2020-12-29 15:04

    I have a question - why don't you use functions to print current working directory in bash? Like:

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

    Or

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

    Edited: Code above changed to be working without problems.

    0 讨论(0)
  • 2020-12-29 15:12
    php_cwd=`/usr/bin/php << 'EOF'
    <?php echo getcwd(); ?>
    EOF`
    echo "$php_cwd" # Or do something else with it
    
    0 讨论(0)
提交回复
热议问题