Shell脚本
-
介绍
将平时使用的各种Linux命令按执行顺序保存(堆叠)到一个文本文件中,添加上执行权限,就是一个Shell脚本。
将要执行的命令按先后顺序保存到一个文本文件
给该文件可执行权限(x),便可运行
可结合各种 Shell 控制语句以完成更复杂的操作
Shell脚本应用场景:
重复性操作 批量事务处理
自动化运维
服务运行状态监控 定时任务执行
减轻管理员负担
规避费时操作
-
编写规范
1、#!/bin/bash 表示脚本通过以/bin/bash程序来编写
2、#表示注释信息,例如:对编写的脚本作用进行解释,每写一段脚本之前都应该用来注释以下命令执行的结果
3、定义脚本中的变量
4、定义脚本中的函数
5、脚本执行语句(if 判断、who/for循环、case选择等语句)
6、利用echo定义输出一些让人更容易看懂得信息(可以是中文也可以是英文) -
执行脚本的三种方法:
通过脚本路径执行(需要给脚本文件添加上执行权限):
/root/first.sh 或进入到脚本文件所在目录
./ first.sh
进入到脚本文件所在目录执行(文件可以没有执行权限):sh first.sh
bash first.sh
进入到脚本文件所在目录执行(文件可以没有执行权限):source first.sh
. first.sh -
Shell变量
自定义变量:由用户自己定义的变量,只在用户自己的Shell环境中生效,又称本地变量。
定义格式:
变量名=变量值 #等号两边没有空格
变量名必须使用英文字母或是下划线开头,变量名内不允许出现特殊字符,并且区分字母大小写。
使用echo可以查看定义的变量值, 后面是一个变量名或者 后面是一个变量名或者 后面是一个变量名或者{变量名} -
特殊符号
双引号(“”):可以引用变量,有空格的值。
单引号("):引号内的内容被视为一个完整的字符串,不能引用变量。
反撇号(``):引号内的执行结果作为变量名的变量值,引用命令执行结果。反撇号在一行命令中不能实现嵌套命令替换操作,所以使用$()。 -
read命令
用来提示用户输入信息,从而实现简单的交互变量设置。将用户输入的信息作为变量值,用户的输入以空格作为分隔符,将读入的各个字段挨个赋值给指定的变量,多余的赋值给最后一个变量。
-p 设置提示信息
-
变量生效的范围
新定义的变量只能在当前Shell环境中生效。又称局部变量或者本地变量。
export命令:可以将局部变量发布到全局。 注意: export 全局发布,只能向下面的子Shell发布,不能向上父 Shell发布。 echo $product #查看当前shell中变量的值 bash #切换到新的子Shell环境 echo $product #查看变量(可以看到查不到变量值) exit #退出 Shell 环境 export product #使用export命令将变量发布到全局 bash #进入到一个新 Shell 环境 echo Sproduct #查看变量值
-
数值变量的运算
#使用expr命令进行简单的整数运算,不支持小数运算