HP-UX, sh
Есть файлик listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = gbadb_DGMGRL)
(SID_NAME = gbadb)
(ORACLE_HOME = /oracle/product/11.2.0.2)
)
(SID_DESC =
(GLOBAL_DBNAME = gbadb2)
(SID_NAME = gbadb2)
(ORACLE_HOME = /oracle/product/11.2.0.1)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = gbadb)(PORT = 1521))
)
)
)
есть скриптик:
DB_NAME=gbadb
ORACLE_HOME_TMP=`paste -s listener.ora | tr -d " \t" | sed 's/.*SID_LIST_LISTENER=(SID_LIST=\(.*)))\).*/\1/g' | sed 's/))(/))\
(/g' | grep "SID_NAME=$DB_NAME)" | sed 's/.*(ORACLE_HOME=\([^)]*\)).*/\1/'`
echo $ORACLE_HOME_TMP
paste -s listener.ora | tr -d " \t" | sed 's/.*SID_LIST_LISTENER=(SID_LIST=\(.*)))\).*/\1/g' | sed 's/))(/))\
(/g' | grep "SID_NAME=$DB_NAME)" | sed 's/.*(ORACLE_HOME=\([^)]*\)).*/\1/'
Ну, то-есть, сначала я вычисляю переменную ORACLE_HOME_TMP, а потом банально повторяю то-же самое действие, только без ``
Однако итог вводит меня в тоску
/oracle/product/11.2.0.1
/oracle/product/11.2.0.2
Есть какие мысли?
PS Нижней чакрой чувствую, что беда в комбинации grep "SID_NAME=$DB_NAME)" и ``, но доказать не могу.