编写 shell 脚本

shell 脚本命令工作方式有两种:
1、交互式:每输入一条命令就立即执行
2、批处理:由用户事先编辑好一个完整的 shell 脚本,shell 一次性执行脚本的所有命令

编写简单的shell脚本

实际上在vim编辑器按次序写上Linux脚本,这就是一个简单的脚本了
例如:
在这里插入图片描述
在这里插入图片描述
注:
1、为避免误以为是普通文件,常加后缀 .sh 来表示这是一个脚本文件
2、第一行的#!是脚本声明,告诉系统使用什么编辑器解释该脚本
3、第二行#代表注释信息
4、往下是我们使用的Linux系统命令

接收用户参数

为了能让shell脚本完成一些实时需求,需要让脚本能接收用户数据

Linux系统已经内设了用于接收参数的变量,变量之间可以使用空格
例如:
$0:当前shell脚本程序名称
$#:总共又几个参数
$*:所有位置参数的值
$?:显示上一次命令的执行返回值
$1 $2 $3…:分别对应着第N个位置的参数值

在这里插入图片描述
在这里插入图片描述

判断用户参数

shell 脚本中的条件测试语法可以判断表达式是否成立,若成立则返回0,否则返回其他随机值
测试语句格式:[ 条件表达式 ] 注意括号两端有空格

条件测试语句分为四类:
文件测试语句
逻辑测试语句
整数值比较语句
字符串比较语句

文件测试语句
文件测试即判断文件是否存在或权限是否满足等情况的运算符
具体参数:

运算符 作用
-d 测试文件是否为目录类型
-e 测试文件是否存在
-f 测试是否为一般文件
-r 测试当前用户是否有权限读入
-w 测试当前用户是否有权限写入
-x 测试当前用户是否有权限&&执行

例如:
在这里插入图片描述

逻辑测试语句
逻辑语句是对测试结果进行逻辑分析,根据测试结果以实现不同的效果

shell终端中的逻辑“与”(&&):前面的命令执行成功之后才会执行后面的命令
shell终端中的逻辑“或”(||):前面的命令执行失败之后才会执行后面的命令
shell终端中的逻辑“非”(!):把条件测试结果中的判断结果取反值

例如:
在这里插入图片描述
结合系统环境变量USRE来判断当前登录用户是否为非管理员身份
在这里插入图片描述
切换到一个root管理员身份,判断当前用户是否为一个非管理员用户
在这里插入图片描述
判断当前用户是否为一个非管理员用户
在这里插入图片描述

扫描二维码关注公众号,回复: 11323044 查看本文章

整数值比较语句
仅仅只能对数字进行操作,不能对数字、字符串、文件等内容一起操作,而且不能想当然地使用大于号小于号等来判断。因为等号与复制命令符冲突,大于号和小于号分别与输出重定向和输入重定向冲突。

可用的比较运算符如下:

运算符 作用
-eq 是否等于
-ne 是否不等于
-gt 是否大于
-lt 是否小于
-le 是否等于或小于
-ge 是否等于或大于

例如:
在这里插入图片描述
其中的数字也可以替换为赋值后的常量

字符串比较语句
用于判断测试字符串是否为空值,或两个字符串是否相同

运算符 作用
= 比较字符串内容是否相同
!= 比较字符串内容是否不同
-z 判断字符串内容是否为空

例如:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_46126537/article/details/104225190
今日推荐