随笔-shell-解析配置文件(k=v格式)

function util_parse_config_file() {
    [[ $# != 1 || ! -e "$1" ]] && exit -1

    OLD_IFS="$IFS"
    IFS=$'\n' for line in $(<$1); do
        [[ -z "$line" || "$line" =~ ^\#.* ]] && continue

        value=${line#*=}
        value=${value//\"}

        case "${line%=*}" in
            sip_srv)           sip_srv="$value"           ;;
           ...
            *)                 echo "not support: $line"  ;;
        esac
    done
    IFS="$OLD_IFS"
}

注1: 修改IFS,因为默认IFS包含空格,如果一行包含空格,则会被拆分

注2: shell 按行读取

    # while read -r line; do
    #    ...
    # done < $1

这种如果最后一行没有以换行符结尾,则读不到

posted @   LiYanbin  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
点击右上角即可分享
微信分享提示