2016-09-20 6 views
0

У меня есть свойство файл (env.properties), который содержит ниже имени свойства и значения:Невозможно источник имя свойства containig точки в сценарии оболочек

oracle.install.option=UPGRADE_DB 

У меня есть другой скрипт (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

вы уверены, что это файл оболочки? не файл конфигурации oracle? потому что env. переменные и точки не смешиваются хорошо. –

ответ

1

Этот файл свойств не является файлом оболочки, а в именах переменных окружения не допускаются точки (см. here) Таким образом, ваш хак мог бы работать, если у объектов не было точки, но не здесь.

Так что, если вы хотите, чтобы отобразить его в оболочке, у вас есть еще один хороший вариант: разобрать свойства файла с помощью awk

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

Благодарим вас за решение. – Vathsalya