前言:随着Linux系统在企业中的应用越来越多,服务器的自动化管理也变得越来越重要。在Linux服务器的自动化维护工作中,除了计划任务的设置以外,shell脚本的应用也是非常重要的一部分。
shell是一种开发语言(脚本语言),属于弱语言(开头不需要声明)。
shell脚本编程规范
shell脚本的概念
将要执行的命令按顺序保存到一个文本文件
给该文件可执行权限,便可运行
可结合各种shell控制语句以完成更复杂的操作
shell脚本应用场景
重复性操作
批量事物处理
自动化运维
服务运行状态监控
定时任务执行等
执行脚本文件
方法一:脚本文件路径(绝对路径与相对路径)
(必须有x权限)
方法二:sh脚本文件路径
方法三:source 脚本文件路径
更完善的脚本构成
脚本声明
注释信息
可执行语句
交互式硬件设备
标准输入:从该设备接收用户输入的数据
标准输出:通过该设备向用户输出数据
标准错误:通过该设备报告执行出错信息
重定向操作
重定向与管道操作
管道操作符号 “|”
将左侧的命令输出结果,作为右侧命令的处理对象
变量
变量的作用
为灵活管理Linux系统提供特定参数,有两层意思:
变量名:使用固定的名称,由系统预设或用户定义
变量值:能够根据用户设置、系统环境的变化而变化
变量的类型
自定义变量:由用户自己定义
环境变量:由系统维护,用于设置工作环境
位置变量:通过命令行给脚本程序传递参数
预定义变量:Bash中内置的一类变量,不能直接修改
定义一个新的变量
变量名以字母下划线开头,区分大小写,建议全大写
查看变量的值
赋值时使用引导
双引号:允许通过$符号引用其他变量值
单引号:禁止引用其他变量值,$视为普通字符
反撇号:命令替换,提取命令执行后的输出结果
从键盘输入内容为变量赋值
设置变量的作用范围
两种格式可以混合使用
整数变量的运算
常用运算符
加法运算: +
减法运算: -
乘法运算: *
除法运算: /
求模(取余)运算: %
我们来做个简单的实验:
打包命令行指定的多个文件或目录,并输出相关信息。其中,新建的压缩包文件名称中嵌入秒数(从1970年1月1日至今经过的秒数),通过“date+%s”命令获取秒刻时间。
创建脚本:
编写内容:
给脚本加一个可执行权限并启动脚本:
备份两个对象:
查看:
总结:1.Shell脚本的内容构成:环境声明、注释文字、执行语句。
2.重定向包括重定向输入、重定向输出、错误重定向。
3.定义或赋值变量时,采用“变量名=变量值”的格式。赋值操作还可以使用单引号、双引号、反撇号、read命令等方式。
4.查看或引用变量的值时,采用“$变量名”的格式。
5.常见的特殊变量包括环境变量、位置变量、预定义变量。