bash 脚本编程2 条件判断 (笔记)

简介:

条件判断类型:

    整数测试

    字符测试

    文件测试


条件表达式: [ exppression ] ` expression ` test expression 

             注意一定要加空格前后都要加


整数比较:  -eq 测试两个整数是否相等,相等为真,不等为假。 equal

            -ne 测试两个整数是否不相等,不相等为真,否则为假 not equal

            -gt 测试一个整数是否大于另一个,大于为真,否则为假。 greater than

            -lt 测试一个速度是否小于另一个,小于为真,否则为假。 less than

            -ge 大于或等于 greater than or equal

            -le 小于或等于 less than or equal


命令间的逻辑关系 逻辑与 &&      逻辑或 ||


变量命名规则:1.只能包含字母、数字和下划线,并且不能数字开头。

              2.不应该跟系统中已有的环境变量重名。

              3.最好做到见名知意。(即看到名字明白其含义)。


下面则是几个应用小实例:

整数比较:

比较两个变量其中一个是否比另一个大:

[root@localhost ~]# A=3
[root@localhost ~]# B=2
[root@localhost ~]# [ $A -gt $B ]  (切记要加空格哦!!前后都要,否则会提示语法问题)
[root@localhost ~]# echo $?
0
[root@localhost ~]# 



逻辑与&&和逻辑或|| 的运用

逻辑与&&

[root@localhost ~]# id user1 &> /dev/null && echo "hello, user1"
hello, user1
[root@localhost ~]# 

上边的命令的含义是 如果前边的命令为真(即执行成功)则后边也跟着执行  

即串连电路 第一个为真则检查第二条, 

即两条命令都执行  

真 真 结果为真  

假 真 结果为假 

真 假 结果为假 

假 假 结果为假


逻辑或||

[root@localhost ~]# id user2 &> /dev/null || useradd user2

此命令解释: 如果用户不存在则添加此用户逻辑或||

只要有一个真则结果为真 反过来 只有全为假结果才为假 即:

真 真 结果真

真 假 结果真

假 真 结果真

假 假 结果假

即并连电路,有一条电路通则结果就通


[root@localhost ~]# ! id user1 &> /dev/null && useradd user1

非 ! 即 非真即假  非假即真 结合后边的 与运算  也可以实现

如果用户不存在则添加此用户



条件判断 控制结构 

单分支IF语句

if 如果 判断条件; then 然后(注意如果then和if不在同一行可以省略;分号)

    statement1

    statement2

    ...

if  (结束)


双分支语句

if 判断条件

then 然后

    statement 1

    statement2

    statement3

else 否则

    statement4

    statement5

fi 结束


上边的相信估计看不懂,,下边举一个例子:

显示一个用户的是否为系统用户 即ID为0 如果是则输出administrator 不是则 common 

此脚本写法:


#!/bin/bash

NAME=root


if [ `id -u $NAME` -eq 0 ] ;

then 

    echo "this is administrator"

else

    echo "this is common user"

fi



解释: 如果变量$NAME即root的ID为0则输出this is administrator

       否则 即ID不等于0时  则输出 this is common user

本文转自Winthcloud博客51CTO博客,原文链接http://blog.51cto.com/winthcloud/1624687如需转载请自行联系原作者

Winthcloud
相关文章
|
4月前
|
机器学习/深度学习 Unix Shell
Shell编程基础入门(Bash|变量与输入输出重定向2&1)
Shell编程基础入门(Bash|变量与输入输出重定向2&1)
71 0
|
6月前
|
监控 Shell Linux
使用Python和Bash编写内网监控工具:自动巡检脚本示例
为了确保内网的顺畅运行,自动化监控工具变得不可或缺。本文将介绍如何使用Python和Bash编写一个简单而强大的内网监控工具,它可以帮助您自动巡检网络和系统状态,及时发现问题并采取措施。
246 0
|
8月前
|
Shell
使用Bash备份脚本
使用Bash备份脚本
54 1
|
10月前
|
Shell
【Shell编程】Shell中Bash变量-数值运算、运算符变量、测试和内容替换
【Shell编程】Shell中Bash变量-数值运算、运算符变量、测试和内容替换
56 0
|
10月前
|
Shell
【Shell编程】Shell中Bash变量-预定义变量
【Shell编程】Shell中Bash变量-预定义变量
73 0
|
10月前
|
Shell
【Shell编程】Shell中Bash变量-环境变量
【Shell编程】Shell中Bash变量-环境变量
57 0
|
10月前
|
机器学习/深度学习 Shell
【Shell编程】Shell中Bash变量-位置参数变量
【Shell编程】Shell中Bash变量-位置参数变量
55 0
|
10月前
|
Shell
【Shell编程】Shell中Bash变量-用户自定义变量
【Shell编程】Shell中Bash变量-用户自定义变量
49 0
|
10月前
|
缓存 Shell 开发工具
【Shell编程】Shell中Bash基本功能
【Shell编程】Shell中Bash基本功能
62 0
【Shell编程】Shell中Bash基本功能
|
10月前
|
运维 Shell
善用chatGPT学习 | bash脚本如何判断字符串在数组中
善用chatGPT学习 | bash脚本如何判断字符串在数组中
147 0