需求:shell脚本有时需要读配置文件中的变量,python 和perl都有相应的模块,很方便读取,现在记录一下shell的读取方法
ini 格式
config.ini
[bin]
python=/share/public/software/Onc_Soft/python/2.7.14/bin/python
shell脚本读取config.ini
test.sh
#获取当前目录
BASEDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
#获取conf.ini,假设config.ini在config/config.ini
BASEDIR=${BASEDIR%%config*}
config=$BASEDIR/config.ini
#写个函数
# __readINI [配置文件路径+名称] [节点名] [键值]
function __readINI() {
INIFILE=$1
SECTION=$2
ITEM=$3
_readIni=`awk -F '=' '/\['$SECTION'\]/{a=1}a==1&&$1~/^\s?'$ITEM'\s?$/&&$1!~/\s?#/{print $2;exit}' $INIFILE`
echo ${_readIni}
}
# 获取python路径
python=( $( __readINI $config bin python ) )
参考https://www.jb51.net/article/60854.htm
参考的例子中,不能在前面加#注释,键是模糊匹配,读取第一个模糊匹配上的,比如python前面有 #python,就会直接用 #python 对应的值。
网友评论