概述
在计算机科学中,Shell俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(命令解析器)。它类似于DOS下的command.com和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。

应用场景
shell脚本就是将执行的命令按顺序保存到一个文本文件,并给改文件可执行权限,方便一次性执行的一个程序文件。常用于重复性操作、批量事务处理、自动化运维、服务运行状态监控、定时任务执行等。

编程规范
Linux系统中Shell脚本是一个特殊的应用程序,介于操作系统内核和用户之间,充当一个”命令解释器“的角色。可以通过/etc/shells文件了解 当前系统所支持的Shell脚本种类。其中/bin/bash是大多数Linux版本采用的默认Shell脚本。

shell编程规范与变量_第1张图片
shell编程规范与变量_第2张图片
shell脚本执行命令

./ sh . 空格 cource

其中用./和sh执行脚本不会改变当前路径。而.空格和source执行可以改变路径。当使用./执行shell脚本时需要赋予脚本执行权限。

sh执行shell编程规范与变量_第3张图片
./执行shell编程规范与变量_第4张图片

source执行
shell编程规范与变量_第5张图片

.空格执行

在这里插入图片描述

管道与重定向

shell编程规范与变量_第6张图片

shell编程规范与变量_第7张图片

shell编程规范与变量_第8张图片

shell编程规范与变量_第9张图片

在这里插入图片描述

在上图中,管道符号的作用时将前面的命令结果传给后面的命令程序。awk即竖显示,$1,$7即第一个和第七个位置变量。-F:表示以冒号分隔。

自定义变量

自定义变量时由用户自己定义的变量,只在用户自己的shell环境中有效,因此又称为本地变量。

基本格式 "变量名=变量值",变量名称需以字母或者下划线开头。

shell编程规范与变量_第10张图片
从标准输入设备读入一行内容,为变量赋值,需用到read命令

shell编程规范与变量_第11张图片

位置变量

shell编程规范与变量_第12张图片
$shell编程规范与变量_第13张图片

预定义变量
用户只能使用预定义变量,而不能创建预定义变量,也不能直接为预定义变量赋值。预定义变量使用$符号和另一个符号组合表示。

$#:表示命令行中位置参数个数
$*:表示所有位置参数内容
$?:表示命令执行后返回状态。0表示执行正确,非0表示执行出现异常
$0:表示当前执行的脚本或程序名称

shell编程规范与变量_第14张图片
shell编程规范与变量_第15张图片