2015-11-08 25 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

相關問題