2011-06-03 193 views
1

如何将变量传递给Bash脚本中的PHP函数?例如:如何将变量传递给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 

回答

1

括起来变量引用,使PHP的它静态字符串

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

'PHP公告:未定义的变量:在VAR - 在线1' – Roger 2011-06-03 22:07:57

+0

删除引号在EOF附近。更新。 – 2011-06-03 22:20:47

1

如果您要访问的环境变量,你可以使用getenv。同样,putenv会将变量添加到环境中。然而,bash应该在heredoc内部执行正常的变量扩展,所以你粘贴的内容应该合理地工作,如果内容作为一个静态字符串是有用的(在你的情况下,你需要引用用法,或者向你的引号环境变量)。

不幸的是,它也会尝试替换普通的PHP变量用法,因为它具有相同的语法。您需要在任何正常的PHP变量名称中跳过$以避免这种情况。

+0

我不能使它工作... – Roger 2011-06-03 22:28:50

相关问题