有需求,可以让自己偷懒才是学习的真正动力。由于测试环境在构建代码之后总是需要手动修改配置文件,因此边学习边完成了一个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" ]; thensed -i "s/被替换的字符串/替换成的字符串/g" /home/db.conf.phpecho_green "db.conf.php已修改"cp /home/ready/hosts /home/hostssudo chmod 755 /home/hostssudo chown deploy:deploy /home/hostsecho_green "hosts已修改"echo_green "已全部修改"elseecho_green "拜拜了您那"exit
fi

转载于:https://www.cnblogs.com/jinglangyan/p/7505268.html

第一个shell脚本——修改配置文件相关推荐

  1. linux脚本传参修改配置文件,shell脚本修改配置文件指定行的值

    配置文件内容为 Version 1 ExpireTime 300 MaxProcessTime 15 MaxQueueSize 2000 MaxStatisticsTime 1000000 Stati ...

  2. 写一个shell脚本的基本步骤

    一.新建一个文件 test.sh #使用vi创建一个文本文件test.sh,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,只是用来提示自己这是一个shell脚本 vi test.sh # ...

  3. php写一个shell脚本文件格式,一篇文章学会——shell脚本编写

    用了caffe有一段时间了,感觉自己写shell脚本的能力有待提高,特地从菜鸟笔记处系统的看了一遍,其实学习基础就可,内容也不多,我就不总结了.把网站上的内容用markdown重新编辑了一下,各位可以 ...

  4. 如何编写一个shell脚本

    本文结合大量实例阐述如何编写一个shell脚本. 为什么要进行shell编程 在Linux系统中,虽然有各种各样的图形化接口工具,但是sell仍然是一个非常灵活的工具.Shell不仅仅是命令的收集,而 ...

  5. 4-1:shell编程之编写第一个shell脚本

    文章目录 一:什么是shell脚本 二:如何编写shell脚本 (1)脚本文件的格式 (2)可执行权限 (3)执行脚本 三:第一个shell脚本 (1)基本结构 (2)变量和常量 A:创建变量和常量 ...

  6. 【Linux】通过 Shell 脚本修改用户密码

    1. Linux 中修改用户密码   Linux 中要修改一个用户的密码通常是使用 passwd 命令来完成,命令格式如下. #一般使用格式 passwd [username] [注]:若其后不加任何 ...

  7. 向大家分享一个shell脚本的坑

    打算在跳板机上写一个shell脚本,批量检查远程服务器上的main进程是否在健康运行中. 先找出其中一台远程机器,查看main进程运行情况 [root@two002 tmp]# ps -ef|grep ...

  8. 第一个shell脚本

    第一个shell脚本打开文本编辑器(可以使用vi/vim命令来创建文件),新建一个文件test.sh,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用php写shel ...

  9. Linux Shell脚本入门教程系列之(二)第一个shell脚本

    本文是Linux Shell脚本系列教程的第(二)篇,更多shell教程请看:Linux Shell脚本系列教程 通过上一篇教程的学习,相信大家已经能够对shell建立起一个大体的印象了,接下来,我们 ...

  10. Linux 下第一个shell脚本

    shell脚本可以高效的完成一件事情,和批处理一个意思.学习写第一个shell脚本. 今天开始写一个判断能否ping通ip的脚本 1.首先我们看看ping通与不同之间的区别 可以ping通的情况,如下 ...

最新文章

  1. Hibernate4一对多关系映射
  2. 高并发编程-线程生产者消费者的综合示例
  3. 玩转服务器(华为云)—购买配置登录篇
  4. 算法:人工智能的新曙光
  5. React之组件与模块
  6. 汇编语言---函数调用栈
  7. 递归计算二叉树的高度_如何使用递归方法计算二叉树的高度
  8. 20分钟充满!华为P50系列或最高支持100W超级快充
  9. 汽车之家港股上市发行价定为176.3港元 募资35.6亿港元
  10. java 导出es数据_elasticseach 数据的导出与导出工具elasticdump使用
  11. 最优化学习---从解方程到最优化1
  12. 深入解读Linux进程调度系列(1)——调度的初始化
  13. row_number()函数的使用
  14. Graph Embedding:Node2Vec
  15. android T 前台Service
  16. mac忘记mysql用户名和密码_mac 下 忘记mysql密码如何找回
  17. 2019-12-17-整理的遥感影像(也包含一些GIS和地学数据)下载地址
  18. GD32官方固件库(标准外设库)下载
  19. nginxWebUI :nginx可视化配置工具---实践
  20. 耳部穴位取穴 耳朵对应身体各部位反射图

热门文章

  1. 安装opcenccv-python以后仍然No module named ‘cv2‘
  2. 在SQL Server中建立主键外键的关系
  3. FLOPs和模型参数计算
  4. 清华大学操作系统OS学习(七)——进程控制
  5. 最新php下拉菜单制作,纯CSS制作的下拉菜单
  6. python mysql传入多个参数
  7. 深度学习(十五)基于级联卷积神经网络的人脸特征点定位-CVPR 2013
  8. 项目合作需求、数据集合作需求
  9. 20170923在线编程之输入年、月、日输出这是一年的第几天
  10. C1083: 无法打开包括文件: “stdafx.h”: No such file or directory