2013-04-18 44 views
0

如何獲取shell腳本中定義的變量的值? (腳本是一個配置文件,只包含可變的定義),我不能在EXEC使用「源文件」命令:php - 獲取shell腳本中定義的變量的值

echo exec('var=2; echo $var'); //writes "2" 
echo exec('source config.sh; echo $var'); //writes "" 

我怎樣才能得到的shell腳本中定義的變量值?

+0

你檢查,這是正確的道路?嘗試使用絕對路徑查看是否正確請求了「config.sh」。 – fedorqui

+0

是的,我在我的代碼中使用絕對路徑(問題也存在這種方式) - 和路徑是正確的,該命令運行良好在終端 –

+0

我發現了一個相關的問題 - > http://stackoverflow.com/questions/10302958/IS-IT-可能 - 源-A-SH-文件使用的PHP-CLI-和存取出口-ENV-VARS – fedorqui

回答

1

userThis剛纔爲我工作在終端上:

echo var=2 > shellscript 
echo "<?php echo exec('source /home/user/shellscript; echo $var'); ?>" > phpscript.php 
ls | grep script 
phpscript.php 
shellscript 
php phpscript.php 
2 

所以我寫的shell腳本,那麼PHP讀取shell腳本並運行PHP腳本。它做了你想要的。

也許你可以添加其他exec組件來獲得線索?

<?php 
echo exec('source /home/user/shellscript; echo $var',$out,$ret); 
echo "\nout0: ". $out[0]. "\nret: $ret\n"; 
?> 

這說明我:

~]$ php phpscript.php 
2 
out0: 2 
ret: 0