ini_section() { local inifile="$1" local sec="$2" cat "$inifile" | cut -d\# -f1 | tr -s '\n' '\n' | sed -n "/\[$sec\]/,/\[/ p" | grep -v '\[' | sed '/^ *$/ d' } ini_value() { local inifile="$1" local path="$2" local sec=`echo "$path" | sed 's/\.[^.]\+$//'` local key=`echo "$path" | sed 's/.*\.//'` # echo "path=>$path<" # echo "sec=>$sec<" # echo "key=>$key<" if [ "$key" = "$path" ]; then ini_section "$inifile" "$path" return 0 fi ini_section "$inifile" "$sec" | sed " /^ *$key *=/ !d s/^ *$key *= *// s/ *$// /^ *$/ d " } ini_has_section() { local inifile="$1" local sec="$2" grep -q "^ *\[$sec\]" $inifile || return 1 } ini_has_value() { ini_value $@ | grep -q . } ini_escape() { cat | sed ' s/\$/\\$/g s/`/\\\`/g ' }