第一个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
相关文章
相关标签/搜索