无法在shell脚本中查找包含点的属性名



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

oracle.install.option=UPGRADE_DB

我有另一个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。请帮助我解决这个问题。

此属性文件不是shell文件,环境变量名中不允许使用点(请阅读此处)因此,如果属性中没有点,你的hack可以工作,但不是在这里。

所以如果你想在shell中显示它,你有另一个很好的选择:使用awk

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

最新更新