Linux Shell脚本基础及练习(文件测试、数值比较、字符串比较、逻辑测试、if语句的结构、for语句、while语句、case语句)
条件测试操作
test命令
测试特定表达式是否成立 当条件成立时 测试语句的返回值为0 否则为其他数值
格式一 test 条件表达式
格式二 [ 条件表达式 ]
文件测试
[ 操作符 文件或目录 ]
-e 测试目录或文件是否存在(Exist)
-d 测试是否为目录(Directory)
-f 测试是否问文件(File)
-r 测试当前用户是否有权限读取
-w 测试当前用户是否有权限写入
-x 测试当前用户是否有权限执行
文件测试
整数值比较
[ 整数1 操作符 整数2 ]
-eq 等于(Equal)
-ne 不等于(Not Equal)
-gt 大于(Greater Than)
-lt 小于(Lesser Than)
-le 小于或等于(Lesser or Equal)
-ge 大于或等于(Greater or Equal)
数值比较 Linux的Shell数值比较只能比较整数
筛选取值
字符串比较
格式1 [ 字符串1 = 字符串2 ] [ 字符串1 != 字符串2]
格式2 [ -z 字符串 ]
= 字符串内容相同
!= 字符串内容不同 !表示相反
-z 字符串内容为空
字符串比较
逻辑测试
格式1 [ 表达式1 ] 操作符 [ 表达式2 ] ...
格式2 命令1 操作符 命令2 ...
常用的测试操作符
-a或&& 逻辑与 “而且”的意思
-o或|| 逻辑或 ”或者”的意思
! 逻辑否
全真-a才为真 全假-o才为假
如何测试/opt/backup目录是否存在
-e /opt/backup
查询当前的活动进程数 并测试是否小于100
[(ps aux | wc -l) -lt 100]
如何测试是否已安装sysstat软件包
rpm -q 包名
if语句的结构
单分支结构 if 条件测试操作
then 命令序列
fi
双分支结构 if 条件测试操作
then 命令序列1
else 命令序列2
fi
多分支结构 if 条件测试操作1
then 命令序列1
elif 条件测试操作2
then 命令序列2
else
命令序列
fi
双分支结构 判断httpd服务是否开启
多分支结构 根据输入的成绩判断等级
for语句的结构
for 变量名 in 取值列表
do
命令序列
done
统计1-100之和
网络连通性测试
从IP地址列表文件中取得IP 测试主机的连通性
批量创建用户 用户名为stu开头的字符串 后面是1-50的编号 初始密码用户名
批量创建用户 用户名从文件列表中获取 初始密码为123456
while语句的结构
while 条件测试操作
do
命令序列
done
统计1-100的和
猜价格
小结
sh -x显示脚本执行过程
for、while都能批量添加用户,两者有哪些区别
for靠变量取值循环 while靠条件循环
for循环使用的取值列表如何获得
靠In从文件中取值
如何避免while语句陷入死循环
使用exit结束语句
case语句的结构
case 变量值 in
模式1)
命令序列1
;;
模式2)
命令序列2
;;
*表示通配)
默认命令序列
esac
对服务进行操作
判断用户是普通用户还是超级用户还是系统用户 并输出到相应文件
nfsnobody的ID号是65534