第一個shell腳本——修改配置文件


    有需求,可以讓自己偷懶才是學習的真正動力。由於測試環境在構建代碼之后總是需要手動修改配置文件,因此邊學習邊完成了一個shell腳本,可以一鍵修改。

    定義了一個函數,輸出信息以綠色字體顯示。

function echo_green {
        echo -e "\033[32m$1\033[0m"
}

    輸出提示信息

echo_green "是否一鍵修改xxx?(y/n)"

   讀取鍵盤輸入

read answer

  要修改的配置文件有兩類:一類是明確清楚應該修改哪些字符串,直接用替換字符串的方式,假如是/home/db.conf.php。另一類是對自己不熟悉的配置文件,修改一次之后直接保存該文件,每次構建代碼后用修改的文件去覆蓋,假如是/home/hosts。這種方式並不推薦,當該文件有新的改動時可能因被覆蓋而無法生效,造成不必要的麻煩。

   先判斷輸入,輸入為y時進行修改

if [ "$answer" == "y" ]; then

   1、修改字符串

sed -i "s/被替換的字符串/替換成的字符串/g" /home/db.conf.php
echo_green "db.conf.php已修改"

    tips:

    ①sed -i:sed命令加了 -i才會對原文件直接進行操作

    ②/g 是全部替代,否則只替代每行的第一個。

   2、替換文件

    假如我們將已經修改好的文件放於/home/ready/hosts

    覆蓋后需要修改文件屬性以及文件擁有者及所屬用戶組

cp /home/ready/hosts /home/hosts
sudo chmod 755 /home/hosts
sudo chown deploy:deploy /home/hosts
echo_green "hosts已修改"

    全部修改完成后,輸出提示信息

echo_green "已全部修改"

    如果鍵盤輸入信息不是y,則輸出提示信息,退出

else
echo_green "拜拜了您那"
exit
fi

    完整代碼

function echo_green {
        echo -e "\033[32m$1\033[0m"
}

echo_green "是否一鍵修改db.conf.php、hosts?(y/n)"
read answer
if [ "$answer" == "y" ]; then

    sed -i "s/被替換的字符串/替換成的字符串/g" /home/db.conf.php
    echo_green "db.conf.php已修改"
    
    cp /home/ready/hosts /home/hosts
    sudo chmod 755 /home/hosts
    sudo chown deploy:deploy /home/hosts
    echo_green "hosts已修改"
    
    echo_green "已全部修改"
    
else
    echo_green "拜拜了您那"
    exit
fi

 



 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM