我通過bash shell使用PHP CLI。詳情請查詢Manipulating an array (printed by php-cli) in shell script。在bash shell腳本中啓動動態變量(變量變量)
在下面的shell代碼中,我能夠回顯我從PHP腳本獲得的key
- value
對。
IFS=":"
# parse php script output by read command
php $PWD'/test.php' | while read -r key val; do
echo $key":"$val
done
以下是輸出這一點 -
BASE_PATH:/path/to/project/root
db_host:localhost
db_name:database
db_user:root
db_pass:root
現在我只想啓動while循環中的動態變量,這樣我可以像$BASE_PATH
具有價值'/path/to/project/root'
,$db_host
有使用它們'localhost'
我來自PHP的背景。我想類似PHP
的$$key = $val
@Martin謝謝,這有效,但在while循環之外有可變範圍問題。我能夠在循環內的eval行後面回顯變量,但不在「while」循環的`done`關鍵字之外 – 2010-12-08 07:54:25
您是對的,這是因爲read構造創建了一個子外殼。然後內部變量在循環之外將不可見。我會更新與替代解決方案的答案... – 2010-12-08 08:10:39