bash shell 讀取引數檔案常見方法
1.透過eval
[oracle@ct6605 ~]$ cat config.ini
GDBNAME=ct6605
SID="ct6605"
TEMPLATENAME="General_Purpose.dbc"
SYSPASSWORD="system"
SYSTEMPASSWORD="system"
DATAFILEDESTINATION=/u02/oradata
RECOVERYAREADESTINATION=/u09/orabackup
TOTALMEMORY="700"
[oracle@ct6605 ~]$ cat test.sh
#!/bin/bash
eval `cat /home/oracle/config.ini`
#while read line;
#do
#eval "$line"
#done < /home/oracle/config.ini
echo $GDBNAME
echo $SID
echo $TEMPLATENAME
echo $SYSPASSWORD
echo $SYSTEMPASSWORD
echo $DATAFILEDESTINATION
echo $RECOVERYAREADESTINATION
echo $TOTALMEMORY
[oracle@ct6605 ~]$ sh test.sh
ct6605
ct6605
General_Purpose.dbc
system
system
/u02/oradata
/u09/orabackup
700
2.透過sed
[oracle@ct6605 ~]$ cat config.ini
[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]
GDBNAME = "ct6605"
SYSTEMPASSWORD = "system"
DATAFILEDESTINATION =/u02/oradata
[oracle@ct6605 ~]$ cat test02.sh
#!/bin/sh
GetKey(){
section=$(echo $1 | cut -d '.' -f 1)
key=$(echo $1 | cut -d '.' -f 2)
sed -n "/\[$section\]/,/\[.*\]/{
/^\[.*\]/d
/^[ \t]*$/d
/^$/d
/^#.*$/d
s/^[ \t]*$key[ \t]*=[ \t]*\(.*\)[ \t]*/\1/p
}" config.ini
}
echo $(GetKey "GENERAL.RESPONSEFILE_VERSION")
echo $(GetKey "GENERAL.OPERATION_TYPE")
echo $(GetKey "CREATEDATABASE.GDBNAME")
echo $(GetKey "CREATEDATABASE.SYSTEMPASSWORD")
echo $(GetKey "CREATEDATABASE.DATAFILEDESTINATION")
[oracle@ct6605 ~]$ sh test02.sh
"11.2.0"
"createDatabase"
"ct6605"
"system"
/u02/oradata
參考文章:http://shenling258-hotmail-com.iteye.com/blog/1454087
[oracle@ct6605 ~]$ cat config.ini
GDBNAME=ct6605
SID="ct6605"
TEMPLATENAME="General_Purpose.dbc"
SYSPASSWORD="system"
SYSTEMPASSWORD="system"
DATAFILEDESTINATION=/u02/oradata
RECOVERYAREADESTINATION=/u09/orabackup
TOTALMEMORY="700"
[oracle@ct6605 ~]$ cat test.sh
#!/bin/bash
eval `cat /home/oracle/config.ini`
#while read line;
#do
#eval "$line"
#done < /home/oracle/config.ini
echo $GDBNAME
echo $SID
echo $TEMPLATENAME
echo $SYSPASSWORD
echo $SYSTEMPASSWORD
echo $DATAFILEDESTINATION
echo $RECOVERYAREADESTINATION
echo $TOTALMEMORY
[oracle@ct6605 ~]$ sh test.sh
ct6605
ct6605
General_Purpose.dbc
system
system
/u02/oradata
/u09/orabackup
700
2.透過sed
[oracle@ct6605 ~]$ cat config.ini
[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]
GDBNAME = "ct6605"
SYSTEMPASSWORD = "system"
DATAFILEDESTINATION =/u02/oradata
[oracle@ct6605 ~]$ cat test02.sh
#!/bin/sh
GetKey(){
section=$(echo $1 | cut -d '.' -f 1)
key=$(echo $1 | cut -d '.' -f 2)
sed -n "/\[$section\]/,/\[.*\]/{
/^\[.*\]/d
/^[ \t]*$/d
/^$/d
/^#.*$/d
s/^[ \t]*$key[ \t]*=[ \t]*\(.*\)[ \t]*/\1/p
}" config.ini
}
echo $(GetKey "GENERAL.RESPONSEFILE_VERSION")
echo $(GetKey "GENERAL.OPERATION_TYPE")
echo $(GetKey "CREATEDATABASE.GDBNAME")
echo $(GetKey "CREATEDATABASE.SYSTEMPASSWORD")
echo $(GetKey "CREATEDATABASE.DATAFILEDESTINATION")
[oracle@ct6605 ~]$ sh test02.sh
"11.2.0"
"createDatabase"
"ct6605"
"system"
/u02/oradata
參考文章:http://shenling258-hotmail-com.iteye.com/blog/1454087
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28539951/viewspace-1775246/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Shell程式設計-檔案讀取方法集錦程式設計
- Python常見檔案讀寫方法有哪些?Python
- Shell 引數的讀取和處理
- shell讀取配置檔案-sed命令
- Oracle引數檔案解析——引數檔案分析獲取Oracle
- bash shell指令碼接受多個引數指令碼
- 工具類,關於手工讀取 properties檔案引數
- Nginx 內容快取及常見引數配置Nginx快取
- 讀取檔案方法大全
- shell Bash變數變數
- Spingboot 讀取 yml 配置檔案裡的引數值boot
- 如何在Shell指令碼中逐行讀取檔案指令碼
- shell下十二種讀檔案的方法(轉)
- 通過反射獲取上傳檔案方法引數中的檔名反射
- jmeter 引數化 csv外掛的讀取檔案 bin目錄JMeter
- nginx 常見引數以及重定向引數配置Nginx
- JVM常見引數設定JVM
- 引數檔案的恢復方法
- shell讀取構建檔案資訊生成json字串JSON字串
- 用linux shell逐行讀取文字檔案內容Linux
- 介面自動化測試:引數化封裝(excel檔案讀取)封裝Excel
- Android讀取配置檔案的方法Android
- EXE檔案結構及讀取方法
- 如何從文字檔案讀入 SQL 引數SQL
- MySQL InnoDB常見引數詳解MySql
- oracle 常見初始化引數Oracle
- SHELL程式設計—每次讀取檔案的一行程式設計
- 修改pfile引數檔案過程的異常
- Bash變數和引數變數
- 瞭解如何用 Bash 讀寫檔案
- Python指令碼的常見引數獲取和處理方式Python指令碼
- 引數檔案
- 引數檔案/口令檔案
- 用 PHP 讀取檔案的正確方法PHP
- 用C#讀取txt檔案的方法C#
- python讀取yaml配置檔案的方法PythonYAML
- shell簡介之bash程式設計之引數說明(轉)程式設計
- 如何用在bash中擷取部分系統引數?