Shellは、リードini形式のプロファイル設定方法を実現します。
iniファイル形式は、一般的に、セクション、キー、値の3つの部分から構成されます。
書式:
[第一節]
最初のキー=値
二番目のキー=二番目の値
[第二節]
最初のキー=val 1,val 2,val 3
例:
自分で使う時は、検証して使ってください。
書式:
[第一節]
最初のキー=値
二番目のキー=二番目の値
[第二節]
最初のキー=val 1,val 2,val 3
例:
[COM]
KINGGOO = jb51.net
実は、この役割はそんなに大きくないですが、複数のshellは各設定情報をshellファイルに書いてもいいです。知っている人は大丈夫です。半熟+不注意な人はどうやって直したらいいですか?このように単独でどこに来たらいいですか?また複数のshellは一つのiniファイル(拡張子とは関係ない)を使って配置してもいいです。shellにカスタム関数を追加するだけでいいです。
# __readINI [ + ] [ ] [ ]
function __readINI() {
INIFILE=$1; SECTION=$2; ITEM=$3
_readIni=`awk -F '=' '/\['$SECTION'\]/{a=1}a==1&&$1~/'$ITEM'/{print $2;exit}' $INIFILE`
echo ${_readIni}
}
使用方法:
__readINI file.ini SECTION KEY
例:ini形式のファイルがあります。kigglo.iniの内容は以下の通りです。
[IP]
ip = jb51.net
[MAILLIST]
mail = [email protected]
スクリプトファイルの内容:
#!/bin/bash
# __readINI [ + ] [ ] [ ]
function __readINI() {
INIFILE=$1; SECTION=$2; ITEM=$3
_readIni=`awk -F '=' '/\['$SECTION'\]/{a=1}a==1&&$1~/'$ITEM'/{print $2;exit}' $INIFILE`
echo ${_readIni}
}
# :
# Net address
_IP=( $( __readINI kinggoo.ini IP ip ) )
echo ${_IP}
# mail send
_mailList=( $( __readINI kinggoo.ini MAILLIST mail ) )
echo ${_mailList}
スクリプトファイルを実行することもできます。自分で使う時は、検証して使ってください。