最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Shell實(shí)現(xiàn)ini文件的讀寫

 更新時間:2024年11月30日 11:42:20   作者:Lydro  
這篇文章主要為大家詳細(xì)介紹了如何使用Shell實(shí)現(xiàn)ini文件的讀寫,文中的示例代碼簡潔易懂,具有一定的借鑒價值,有需要的小伙伴可以參考一下

自己寫小工具需要用到shell讀寫ini文件,在網(wǎng)上找了很多資料,自己整理的目前使用沒問題的代碼如下:

set代碼:

#!/bin/bash
 
# 提示信息
msg="Please input the param 【<get|set> <file> <section> <key> [value]】"
 
 
# 操作文件
file=$1
# 指定section
section=$2
# 指定key
key=$3
# value
value=$4
 
function get_opt()
{
    INIFILE=$1;
    SECTION=$2;
    ITEM=$3
 
    tmpfile="/tmp/tmp.ini"
    # 去掉配置文件中的注釋行和空行,保存到tmpfile中。
    sed '/^#/d;/^$/d' ${INIFILE} > ${tmpfile}
 
    _readIni=`awk -F '=' '/\['${SECTION}'\]/{a=1}a==1&&$1~/'${ITEM}'/{print $2;exit}' ${tmpfile}`
    echo ${_readIni}
}
 
function set_opt()
{
    # 函數(shù)使用說明:
    #   write_ini_file <文件> <節(jié)> <鍵> <值>
    #   如果節(jié)或者鍵不存在,則添加
    #   如果節(jié)、鍵存在,值不匹配,則更新
    #   如果節(jié)、鍵、值均存在,則不做操作
 
    allSections=$(awk -F '[][]' '/\[.*]/{print $2}' $1)
    iniSections=(${allSections// /})
    # 判斷是否要新建item
    itemFlag="0"
    for temp in ${iniSections[@]};do
        if [[ "${temp}" = "$2" ]];then
            itemFlag="1"
            break
        fi
    done
 
    if [[ "$itemFlag" = "0" ]];then
        echo "[$2]" >> $1
    fi
 
    # 加入或更新value
    awk "/\[$2\]/{a=1}a==1" $1|sed -e '1d' -e '/^$/d'  -e 's/[ \t]*$//g' -e 's/^[ \t]*//g' -e '/\[/,$d'|grep "$3.\?=">/dev/null
    if [[ "$?" -eq 0 ]];then
        # 更新
        # 找到指定item行號碼
        itemNum=$(sed -n -e "/\[$2\]/=" $1)
        sed -i "${itemNum},/^\[.*\]/s/\($3.\?=\).*/\1$4/g" $1 >/dev/null 2>&1
        # 如果替換失敗,可能文件中有\(zhòng),更換分隔符為!
        if [[ "$?" -ne 0 ]];then
            sed -i "${itemNum},/^\[.*\]/s!\($3.\?=\).*!\1$4!g" $1
        fi
    else
        # 新增
        sed -i "/^\[$2\]/a\\$3=$4" $1
    fi
}
 
# 判斷輸入?yún)?shù)
set_opt $file $section $key $value

get代碼:

#!/bin/bash
 
# 提示信息
msg="Please input the param 【<get|set> <file> <section> <key> [value]】"
 
 
# 操作文件
file=$1
# 指定section
section=$2
# 指定key
key=$3
 
 
function get_opt()
{
    INIFILE=$1;
    SECTION=$2;
    ITEM=$3
 
    tmpfile="/tmp/tmp.ini"
    # 去掉配置文件中的注釋行和空行,保存到tmpfile中。
    sed '/^#/d;/^$/d' ${INIFILE} > ${tmpfile}
 
    _readIni=`awk -F '=' '/\['${SECTION}'\]/{a=1}a==1&&$1~/'${ITEM}'/{print $2;exit}' ${tmpfile}`
    echo ${_readIni}
}
 
 
 
# 判斷輸入?yún)?shù)
get_opt $file $section $key

到此這篇關(guān)于使用Shell實(shí)現(xiàn)ini文件的讀寫的文章就介紹到這了,更多相關(guān)Shell讀寫ini文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Linux ls命令操作詳解

    Linux ls命令操作詳解

    通過 ls 命令,我們可以查看指定目錄下的文件和子目錄,并結(jié)合不同的選項(xiàng)獲取詳細(xì)的文件信息,如權(quán)限、大小、修改時間等,這篇文章主要介紹了Linux ls命令詳解,需要的朋友可以參考下
    2025-04-04
  • Linux 無法使用userdel 刪除用戶和組的解決方案

    Linux 無法使用userdel 刪除用戶和組的解決方案

    這篇文章主要介紹了Linux 無法使用userdel 刪除用戶和組的解決方案的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • Shell腳本實(shí)現(xiàn)查殺子進(jìn)程、僵尸進(jìn)程

    Shell腳本實(shí)現(xiàn)查殺子進(jìn)程、僵尸進(jìn)程

    這篇文章主要介紹了Shell腳本實(shí)現(xiàn)查殺子進(jìn)程、僵尸進(jìn)程,本文直接給出實(shí)現(xiàn)代碼,實(shí)現(xiàn)遞歸找到導(dǎo)致進(jìn)程僵死的最底層子進(jìn)程并殺除,需要的朋友可以參考下
    2015-01-01
  • Linux實(shí)現(xiàn)簡易版Shell的代碼詳解

    Linux實(shí)現(xiàn)簡易版Shell的代碼詳解

    本篇文章,我們將一起踏上一段有趣的旅程,仿照CentOS?–?Bash的工作流程,實(shí)現(xiàn)一個功能雖然簡單,但足以讓你深刻理解?Shell?工作原理的迷你?Shell,g感興趣的小伙伴跟著小伙伴一起來看看吧
    2025-05-05
  • bash shell邏輯表達(dá)式的使用

    bash shell邏輯表達(dá)式的使用

    bash shell邏輯表達(dá)式一般有3種寫法,本文就來介紹一下bash shell邏輯表達(dá)式的具體使用,具有一定的參考價值,感興趣的可以了解一下
    2023-05-05
  • 詳解Linux定時任務(wù)Crontab的介紹與使用

    詳解Linux定時任務(wù)Crontab的介紹與使用

    linux內(nèi)置的cron進(jìn)程能幫我們實(shí)現(xiàn)這些需求,cron搭配shell腳本,非常復(fù)雜的指令也沒有問題。本文主要介紹了定時任務(wù)Crontab的使用,需要的可以學(xué)習(xí)一下
    2022-10-10
  • Shell字符串比較相等、不相等方法小結(jié)

    Shell字符串比較相等、不相等方法小結(jié)

    這篇文章主要介紹了Shell字符串比較相等、不相等方法小結(jié),本文直接給出代碼,但代碼中含有大量注釋,需要的朋友可以參考下
    2014-10-10
  • shell?set?-u?和set?+u的具體使用

    shell?set?-u?和set?+u的具體使用

    本文主要介紹了shell?set?-u?和set?+u的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05
  • linux壓縮常用命令小結(jié)

    linux壓縮常用命令小結(jié)

    這篇文章主要介紹了linux壓縮常用命令知識,包括壓縮解壓縮方面的內(nèi)容,本文給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2017-03-03
  • 利用xargs批量刪除Docker鏡像的方法

    利用xargs批量刪除Docker鏡像的方法

    在Linux系統(tǒng)中,xargs命令是一個非常強(qiáng)大的工具,可以幫助將標(biāo)準(zhǔn)輸入轉(zhuǎn)換為命令行參數(shù),并傳遞給其他命令,本文將重點(diǎn)介紹xargs參數(shù)的使用,以及如何利用xargs結(jié)合其他命令刪除特定的Docker鏡像,需要的朋友可以參考下
    2024-04-04

最新評論

垣曲县| 永修县| 泾源县| 固安县| 巫山县| 青岛市| 浦江县| 滨州市| 天峻县| 新干县| 新干县| 华容县| 衡阳县| 崇文区| 吉安县| 历史| 阜平县| 莆田市| 万源市| 滦南县| 民县| 永嘉县| 松溪县| 张北县| 伊通| 深州市| 贵州省| 广饶县| 邹平县| 马边| 毕节市| 色达县| 宜都市| 乐至县| 满洲里市| 望都县| 京山县| 工布江达县| 昭平县| 龙泉市| 莱芜市|