目录
一.shell脚本基础
1.shell作用
Linux 系统中的 Shell 是一个特殊的应用程序,它介于操作系统内核与用户之间,充当 了一个“命令解释器”的角色,负责接收用户输入的操作指令(命令)并进行解释,将需要执 行的操作传递给内核执行,并输出执行结果。
cat /etc/shells可以查看当前系统支持的shell
2.什么是shell脚本及处理逻辑
- Shell脚本就是将命令按顺序一一列出的程序,最后自动执行。shell脚本将简单的命令组合完成负责的工作,自动化执行命令,提高工作效率,可以用于日常性重复性的运维工作。
- 处理逻辑分为三种:
- 顺序执行:程序按从上到下的顺序执行
- 选择执行:程序执行过程中,根据条件的不同选择不同的分支继续执行
- 循环执行:程序在执行过程中需要重复执行多次某些语句(根据已知次数、已知条件)
3.shell脚本的基本格式
4、 shell脚本执行方式
二.shell脚本的变量
1.变量的作用
用来存放系统和用户需要使用的特定参数
2.变量名要求
①定义变量格式:变量名=变量值(shell中不用声明类型,所有类型均为字符串)
②定义变量时,变量名要求:
变量名区分大小写建议全部使用大写,不能使用系统内置变量。如$PATH是系统外部命令的存放路径等。
变量名不能以数字开头,且不支持短横线 -。
3、变量类型
①.环境变量
系统维护的变量,用于设置工作环境,使用env命令可以查看所有环境变量
②.只读变量
只可以读取不能修改的变量,相当于常量,用处较少
③.自定义变量
用户自己定义的变量
④.环境变量
通过命令行给脚本传递参数
主要指执行脚本时后面所跟着位置。
$1-$9:脚本后1-9的位置
${10}:脚本后10以上的位置需要借助变量分隔符{},不然会将$1认为是一个位置变量然后输出再加上后面的数字。
⑤.预定义变量
系统已经定义好的变量,只需要记住即可
$*:表示所有位置参数的内容看成一个整体返回
$@:表示输出脚本后的所有位置参数,且认为每个是独立的值
$0:表示当前执行的脚本或程序的名称 当前脚本的名字
$#:表示命令行中位置参数的总个数
:当前进程id,使用方法echo
$?:表示前一条命令执行后的返回状态,返回值为 0 表示上一条命令执行正确,返回任何非 0 值均表示执行出现异常。使用方法echo $?
$!:后台任务最后一个id,使用方法echo $!
4.变量的作用范围
默认情况下,新定义的变量只在当前的shell环境中有效,因此称为局部变量,当进入子程序或新的shell环境中,局部变量将无法再起作用。
可以通过内部命令export将指定的变量为全局变量,使用户定义的变量在所有子shell环境中可以继续使用
全局变量格式1: export 变量名
全局变量格式2:export 变量名=变量值