如何将变量传递给Bash脚本中的php函数?例如:
#! /bin/bash
VAR='/$#'
php_cwd=`/usr/bin/php << 'EOF'
<?php echo preg_quote($VAR); ?>
EOF`
echo "$php_cwd"
这是另一种尝试:
VAR='VARIABLE'
php_var=`php -r 'echo $VAR;'`
echo $php_var
由于:
PHP Notice: Undefined variable: VAR in Command line code on line 1
Notice: Undefined variable: VAR in Command line code on line 1
答案 0 :(得分:1)
如果要访问环境变量,可以使用getenv
。同样,putenv
会向环境添加变量。但是,bash应该在heredoc中执行正常的变量扩展,所以你粘贴的内容应该合理,如果内容作为静态字符串有用(在你的情况下,你需要引用用法,或者为你的内容添加引号)环境变量)。
不幸的是,它也会尝试替换正常的PHP变量用法,因为它具有相同的语法。您需要在任何正常的PHP变量名称中转义$
以避免这种情况。
答案 1 :(得分:1)
将变量括在引号中,使其成为php的静态字符串
#! /bin/bash
VAR='/$#'
php_cwd=`/usr/bin/php <<EOF
<?php echo preg_quote("$VAR"); ?>
EOF`
echo "$php_cwd"