2015-11-08 40 views

回答

0

您可以使用declare

while read k v; do 
    declare $k="$v" 
done < file.conf 

然后测试这些值:

declare -p key 
declare -- key="name" 

declare -p value 
declare -- value="pswd" 
+1

没有在某些炮弹中“声明”(例如破折号)。您可以用以下代码替换声明行:eval“$ k”=“$ v”。 – kupson

+0

对,这是BASH特有的。对于旧的Bourne壳使用eval – anubhava

+0

嗨Anubhava,感谢您的快速解决方案。只要有一个小的查询 - 如果我file.conf有一些注释行,然后它给我下面与您的代码错误: - File.conf ## # # 键名 值PSWD 输出: - ./test.sh:第2行:declare:'## =':不是有效的标识符 ./test.sh:第2行:declare:'#=':不是有效的标识符 ./test.sh :第2行:declare:'#=':不是有效的标识符 – user3527785

相关问题