有需求,可讓本身偷懶纔是學習的真正動力。因爲測試環境在構建代碼以後老是須要手動修改配置文件,所以邊學習邊完成了一個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