#取得ids中的每个id把,号分隔改成空格,因为循环内容要以空格分隔开来
profile=`sed -n '/ids/'p $CONFIGFILE | awk -F= '{print $2}' | sed 's/,/ /g'`
#对于一个配置文件中的所有id循环
for OneCom in $profile
do
echo "--------------------------------------------------"
echo "COM:$OneCom"
#此处函数调用有时候不能用反引号,不然会出错,此处原由还不清楚知道的麻烦请告之
getconfig $OneCom $CONFIGFILE
echo "n"
echo "--------------------------------------------------"
#break
done
echo "========================================================"
执行的结果如下:
$ one.sh File
========================================================
+++ConfigName:File+++++++++++++++++++++++++++++++
--------------------------------------------------
COM:com1
key file
name file1
--------------------------------------------------
--------------------------------------------------
COM:com2
key file
name1 file2
--------------------------------------------------
--------------------------------------------------
COM:com3
key file
name2 file3
--------------------------------------------------
嘿嘿需求又变了,配置文件有多个,怎么取多个文件的配置项嘛:
#!/bin/sh
getconfig()
{
SECTION=$1
CONFILE=$2
ENDPRINT="keytfilet"
echo "$ENDPRINT"
for loop in `echo $ENDPRINT|tr 't' ' '`
do
awk -F '=' '/['"$SECTION"']/{a=1}a==1&&$1~/'"$loop"'/{gsub(/[[:blank:]]*/,"",$2);printf("%st",$2) ;exit}' $CONFILE
done
}
#显示的多个文件名将多行的回车符转成逗号分隔符
CONFIGFILES=`ls $1|tr 'n' ','`
#查看到底有多个配置文件
_Num=`echo $CONFIGFILES|tr -cd ,|wc -c`
#临时变量保存配置多个文件
_TMPFILES=$CONFIGFILES
while [ $_Num -ge 1 ]
do
#得到一个文件
CONFIGFILE=`echo $_TMPFILES|cut -d ',' -f1`
#余下的文件
_TMPFILES=`echo $_TMPFILES|cut -d ',' -f2-`
#配置文件数量减一
_Num=$(($_Num-1))
echo "========================================================"
#文件名称
echo "+++ConfigName:$CONFIGFILE+++++++++++++++++++++++++++++++"
profile=`sed -n '/ids/'p $CONFIGFILE | awk -F= '{print $2}' | sed 's/,/ /g'`
#对于一个配置文件中的所有id循环










