无法在shell脚本中获取包含点的属性名称

时间:2016-09-20 19:03:44

标签: shell properties

我有一个属性文件(env.properties),其中包含以下属性名称和值:

oracle.install.option=UPGRADE_DB

我有另一个运行source命令的shell脚本(test.sh)并尝试访问属性oracle.install.option的值:

#!/bin/sh
source env.properties
echo "value is...... " $oracle.install.option

当我运行.test.sh文件时,我无法获得上述属性的值。输出:

env.properties: line 1: oracle.install.option=UPGRADE_DB: command not found
value is ......... .install.option

我的预期输出为UPGRADE_DB。请帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

此属性文件不是shell文件,环境变量名称中不允许使用点(阅读here) 所以,如果属性中没有点,那么你的hack就可以工作了,但不是这里。

因此,如果您想在shell中显示它,您还有另一个不错的选择:使用awk解析属性文件

 awk -F= '{if ($1=="oracle.install.option") print "value is......",$2}' env.properties