我通过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