我正在尝试解析shell脚本中的ini文件。
name.conf文件:
Name1 : abc
Name2 : xyz
我可以通过命令
解析值name1=$(awk '/^Name1/{print $3}' name.conf)
name2=$(awk '/^Name2/{print $3}' name.conf)
我想知道是否有某种方法可以对配置内容进行分组并解析它
name.conf文件:
[Names]
abc
xyz
[Values]
blah
blahh
我只需要shell数组中的值说出名字并按照这样打印
for var in $names
do
echo $var
done
for var in $values
do
echo $var
done
答案 0 :(得分:0)
比这更容易。只需将所有变量放在一个文件中(例如“vars”),格式为“name = value”:
name1 = abc
name2 = xyz
然后在主脚本中,使用“source”加载它:
#!/bin/bash
source vars
或使用句号也有效:
#!/bin/bash
. vars
虽然只有在运行vars文件所在的脚本时才会有效。 Nagios使用这种方法能够在系统中的任何位置运行脚本:
#! /bin/bash
PROGNAME=`basename $0`
PROGPATH=`echo $0 | sed -e 's,[\\/][^\\/][^\\/]*$,,'`
. $PROGPATH/vars
echo $name1
该输出应为'abc'