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

    有需求,可讓本身偷懶纔是學習的真正動力。因爲測試環境在構建代碼以後老是須要手動修改配置文件,所以邊學習邊完成了一個shell腳本,能夠一鍵修改。php

    定義了一個函數,輸出信息以綠色字體顯示。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

   一、修改字符串spa

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

    tips:code

    ①sed -i:sed命令加了 -i纔會對原文件直接進行操做blog

    ②/g 是所有替代,不然只替代每行的第一個。ip

   二、替換文件

    假如咱們將已經修改好的文件放於/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
相關文章
相關標籤/搜索