如何将变量传递给Bash脚本中的php函数

时间:2011-06-03 21:51:23

标签: php bash

如何将变量传递给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

2 个答案:

答案 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"