我有以下配置文件:OO_CONF.conf,内容如下:
appPackage_name = sqlncli
appPackage_version = 11.3.6538.0
现在我想在shell脚本中读取这些变量。所以我想要一个变量$ appPackage_name,它应该包含值:sqlncli
我尝试这样做的方式是:
while read line; do
newline=`echo $line | sed -e 's/ //g'`
expr "$newline"
done < ./OO_CONF.conf
echo "$appPackage_name"
但它似乎不起作用。
请求帮助。
答案 0 :(得分:2)
使用带有bash
标记的-g
内置的declare
使其全局可用,
#!/bin/bash
while IFS=' = ' read -r key value; do
declare -g $key="$value"
done <OO_CONF.conf
printf "%s %s\n" "${appPackage_name}" "${appPackage_version}"
我的想法是将IFS
设置为=
,以便分割文件中的行以读取键和值对,然后使用declare
我们可以动态创建变量使用以下语法
declare -g <var-name>=<variable-value>