2012-05-29 130 views
4

可能重複:
pass parameters to php with shell如何將PHP變量傳遞給Shell腳本?

我運行shell腳本內的PHP腳本作爲

#! /bin/sh 

php file.php 

殼牌將要運行腳本並顯示PHP腳本的輸出,但我怎樣才能將在PHP腳本中定義的變量傳遞到shell腳本中以供在其中使用(用於由shell進一步處理)?

例如,考慮

<?php 
$test = "something"; 
?> 

php文件我怎樣才能的$test值傳遞給shell腳本

#! /bin/sh 

php config.php 
echo $test 

UPDATE:的建議是基於print方法變量。我更喜歡不打印任何東西,因爲php腳本也有其他應用程序(在其他php腳本中爲include d)。

+2

看到這個問題:http://stackoverflow.com/questions/4747396/set-environment-variable-from-outside-bash – chiborg

回答

3

你的PHP腳本可以打印殼式變量賦值:

print("VAR1=foo\n"); 
print("VAR2=bar\n"); 

在你的shell腳本,你需要評估這些任務,以便將其導入到您的環境:

. <(php file.php) 
0

您的PHP腳本可以打印這些值,並且您的shell腳本可以使用進程或命令替換或read來檢索值。

PHP:

<?php 
    print($test1 . "\n"); 
    print($test2 . "\n"); 
?> 

擊:

while read -r line 
do 
    something_with "$line" 
done < <(php_script) 

saveIFS=$IFS 
IFS=$'\n' 
array=($(php_script)) 
IFS=$saveIFS 

saveIFS=$IFS 
IFS=$'\n' 
read -r -d '' var1 var2 <<< "$(php_script)" 
IFS=$saveIFS 

或其他變體。

相關問題