如何解决读取属性文件键后如何将它们存储到shell脚本中的变量中
如果我有一个给定的属性文件和一个 shell 脚本。如何将每个键值对存储在不同的变量中?
例如,如果我阅读了包含以下内容的属性文件 thing.properties:
USERNAME = "Me"
PASSWORD = "Secret"
DB_NAME = "THINGDB"
我如何将这些键中的每一个存储在标有 thingUSERNAME、thingPASSWORD 等的 shell 脚本中的自己的变量中(变量名可以是任何内容,只要它包含文件和密钥的一些相似之处)
(注意这必须在 sh 文件中完成) 任何输入表示赞赏
解决方法
您可以使用 eval
。不过要小心这个命令。它可能是毁灭性的。不幸的是,与 bash
不同的是,sh
不支持 declare
。
$ cat property.txt
USERNAME = "Me"
PASSWORD = "Secret"
DB_NAME = "THINGDB"
$ cat shell.sh
#!/bin/sh
while IFS= read -r line; do
key="${line%% =*}"
value="${line#*= }"
eval "$key"="$value" # For ash,dash,sh.
# declare "$key"="$value" # For bash,other shells.
done < property.txt
echo "username: $USERNAME"
echo "password: $PASSWORD"
echo "db_name: $DB_NAME"
$ ./shell.sh
username: Me
password: Secret
db_name: THINGDB
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。