我有一个属性文件(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
。请帮我解决这个问题。
答案 0 :(得分:1)
此属性文件不是shell文件,环境变量名称中不允许使用点(阅读here) 所以,如果属性中没有点,那么你的hack就可以工作了,但不是这里。
因此,如果您想在shell中显示它,您还有另一个不错的选择:使用awk
解析属性文件
awk -F= '{if ($1=="oracle.install.option") print "value is......",$2}' env.properties