2011-06-03 154 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

相關問題