1.bash中实现条件判断
条件测试类型包括:
整数测试
字符测试
文件测试
条件测试的表达式
[ expression ] (要加空格)
[[ expression ]]
test expression
整数比较:
-eq
:测试两个整数是否相等
$ A=3
$ B=6
$ [ $A -eq $B ]
$ [ $A -eq $B ]
$ echo $?
1 #1为假,0为真
$ B=3
$ [ $A -eq $B ]
$ echo $?
0
-ne
:测试两个整数是否不等,不等为0,等为1
-gt
(greater than):一个大于另一个
-lt
(lesser than): 一个小于另一个
-ge
: 大于或等于
-le
:小于或等于
逻辑关系:
and: && 第一个条件为假时,后面都不执行了,称为短路。 若第一个为真,后面必须判断
or: || 第一个条件为真时,后面就不执行了 若第一个为假,后面则必须判断
若用户存在则hello world
$ id jmzeng &> /dev/null && echo "Hello world"
Hello world
$ id user1 &> /dev/null && echo "Hello"
若用户不存在则添加用户
$ ! id user7 && useradd user7
id: ‘user7’: no such user
useradd: Permission denied.
useradd: cannot lock /etc/passwd; try again later.
用或命令(前面为真后面则不执行)
$ id user7 || useradd user7
id: ‘user7’: no such user
useradd: Permission denied.
useradd: cannot lock /etc/passwd; try again later.
脚本判断
#!/bin/bash
lines=`wc -l /etc/passwd` #命令结果保存在lines,` `反引号为引用结果
finallines=`echo $lines | cut -d' ' -f1`
echo "it has $finallines lines"
[ $finallines -gt 100 ] && echo "is a big data" || echo "is a small data"
$ ./test.sh
it has 85 lines
is a small data
练习题
如果用户不存在,添加并保存密码,否则显示存在
$ ! id user1 && useradd user1 && echo "user1" | passwd --stdin user1 || echo "user1 exists"
id: ‘user1’: no such user
useradd: Permission denied.
useradd: cannot lock /etc/passwd; try again later.
$ ! id user1 &> /dev/null && useradd user1 && echo "user1" | passwd --stdin user1 || echo "user1 exists"
useradd: Permission denied.
useradd: cannot lock /etc/passwd; try again later.
# &> /dev/null 不要这些信息
友情阅读推荐:
生信技能树公益视频合辑:学习顺序是linux,r,软件安装,geo,小技巧,ngs组学!
B站链接:https://m.bilibili.com/space/338686099
YouTube链接:https://m.youtube.com/channel/UC67sImqK7V8tSWHMG8azIVA/playlists
生信工程师入门最佳指南:https://mp.weixin.qq.com/s/vaX4ttaLIa19MefD86WfUA
网友评论