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

发布了94 篇原创文章 · 获赞 68 · 访问量 4104

猜你喜欢

转载自blog.csdn.net/qq_37077262/article/details/104045444