2、bash编程之条件判断(if)+整数测试+简单运算

条件判断:

比如下面一个实例
如果用户不存在
添加用户,给密码并显示添加成功;
否则
显示如果已经没在,没有添加;
bash中如何实现条件判断?
就是用到了if语句
从echo $?在bash编程中应用:执行结果,执行状态结果来判断是否成功
2、bash编程之条件判断(if)+整数测试+简单运算

条件测试的表达式:怎么去表示,常用的三种有下面三个
1.一个中括号,后面加一个空格 [ expression ]
2.两个中括号,后面一个空格[[ expression ]]
3.test expression(少用)
中括号的两端必须有个空格,不然是语法错误
上三种是常用的条件测试的表达式

我们先说第一种一个中括号的
1.整数比较,比较哪个大哪个小(双目操作):
-eq:测试两个整数是否相等;比如$A –eq $B
-ne:测试两个整数是否不等;不等,为真;相等,为假:
-gt:测试一个数是否大于另外一个数:大于,为真;否则,为假
还有其他的,像lt 表示是否小于,-ge是大于或等于,-le是小于或等于
2、bash编程之条件判断(if)+整数测试+简单运算

命令的间逻辑关系:
bash当中命令的逻辑间的逻辑关系:
逻辑与:&&
第一个条件为假时,第二条件不用再判断,最终结果已经有了,那就是假。
第一个条件为真时,第二个条件就必须判断,最终结果取决于第二个条件。
逻辑或:||
如果一个为真,一定为真
如果一个为假,一定为假(就是看到前面的符合了,后面的就不用执行了,所以一般||都是放在最后,意味着否则的意思)

2、bash编程之条件判断(if)+整数测试+简单运算
2、bash编程之条件判断(if)+整数测试+简单运算
2、bash编程之条件判断(if)+整数测试+简单运算

#!/bin/bash
! id user1 &> /dev/null && useradd user1 && echo "user1" | passwd --stdin user1 &> /dev/null || echo "user1 exits"
脚本一结束,变量就被撤销了,所以你再命令行echo 变量是没有的
变量名称:
只能包含字母、数字和下划线,并且不能数字开头;
不应该跟系统中已有的环境变量重名
3、变量名称最好要做到见明知意
2、bash编程之条件判断(if)+整数测试+简单运算

写程序就是要看明白,然后合上书,然后自己写
看着敲,就成了敲字员了
[root@www tmp]# cat a.sh
#!/bin/bash
NAME=user1
USERID=id -u $NAME
[ $USERID -eq 0 ] && echo "Admin" || echo "Common user."
[root@www tmp]# ./a.sh
Common user.
这程序里面不要出现不应该出现的东西,比如说多余的空格,或者该有的[]都要放,因为[]就是用在条件判断的
USERID=id -u $NAME正确,而USERID= id -u $NAME错误

2.条件判断,控制结构:
单分支的if语句(注意要记得缩进,好看,一个好的习惯)
if 判断条件;then
statement1
statement2
fi

或者可以用有else 的语句,双分支的if语句:
if 判断条件;then
statement1
statement2
...
else
statement3
statement3
fi
总之需要fi结尾,格式不能错误
#!/bin/bash
name=user1
if id $name &>/dev/null;then
echo "user exits"
else
echo "no this user"
fi

2、bash编程之条件判断(if)+整数测试+简单运算

练习:
2、bash编程之条件判断(if)+整数测试+简单运算

2、bash编程之条件判断(if)+整数测试+简单运算

自己写一遍
[root@www Linux_mage]# cat 1.sh
#!/bin/bash
BashellUser=grep "\<bash$" /etc/passwd | wc -l
if [ $BashellUser -eq 0 ] ; then
echo "NO this users."
else
echo "have $BashellUser users."
fi

grep "^$" /tmp/Linux_mage/1.sh | wc -l

[root@www ~]# NAME=user1
[root@www ~]# grep "$NAME" /etc/passwd | cut -d: -f4
501
[root@www ~]# grep "$NAME" /etc/passwd | cut -d: -f3
501

三、let运算
shell中如何进行算术运算(之前说过a=3,b=4 而c=$a+$b输出是3+4的):
A=3 ,B=6
1、let 算术运算表达式(常用这种方式就好了)
let C=$A+$B
第二种方法 $[ ]
C=$[$A+$B]
第三种方法 $(( ))
C=$(($A+$B))
4、expr
2、bash编程之条件判断(if)+整数测试+简单运算

2、bash编程之条件判断(if)+整数测试+简单运算

2、bash编程之条件判断(if)+整数测试+简单运算

转载于:https://blog.51cto.com/425319153/2092809

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值