如何在读取 属性 文件密钥后将其存储到 shell 脚本中的变量中
How to store property file keys into variables in a shell script after reading them
如果我有给定的 属性 文件和 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
如果我有给定的 属性 文件和 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