1条件判断
1. 条件判断语法格式
- 格式1: test 条件表达式
- 格式2: [ 条件表达式 ]
- 格式3: [[ 条件表达式 ]]
- 格式4:(( 条件表达式 ))
- 条件判断相关参数
可以判断文件类型,判断文件新旧,判断字符串是否相等,判断权限等等…
㈠ 判断文件类型
-e (判断文件是否存在)
-f (判断是否存在并且是普通文件)
-d (判断文件是否存在并且是一个目录)
举例说明:
test -e file 只要文件存在条件为真
[ -d /shell01/dir1 ] 判断目录是否存在,存在条件为真 注:前方带空格
[ ! -d /shell01/dir1 ] 判断目录是否存在,不存在条件为真 注:前方带空格
[[ -f /shell01/1.sh ]] 判断文件是否存在,并且是一个普通的文件
㈡ 判断文件权限
㈢ 判断文件新旧
说明:这里的新旧指的是文件的修改时间。
㈣ 判断整数
㈤ 判断字符串
㈥ 多重条件判断
特别说明:
&& 前面的表达式为真,才会执行后面的代码
|| 前面的表达式为假,才会执行后面的代码
; 只用于分割命令或表达式
① 举例说明
数值比较
[root@server ~]# [ KaTeX parse error: Expected 'EOF', got '&' at position 17: …id -u) -eq 0 ] &̲& echo "the use… [ KaTeX parse error: Expected 'EOF', got '&' at position 17: …id -u) -ne 0 ] &̲& echo "the use… [ $(id -u) -eq 0 ] && echo “the user is admin” || echo “the user is not admin”
[root@server ~]# uid=id -u
[root@server ~]# test $uid -eq 0 && echo this is admin
this is admin
[root@server ~]# [ $(id -u) -ne 0 ] || echo this is admin
this is admin
[root@server ~]# [ KaTeX parse error: Expected 'EOF', got '&' at position 17: …id -u) -eq 0 ] &̲& echo this is … [ $(id -u) -eq 0 ] && echo this is admin || echo this is not admin
this is not admin
类C风格的数值比较
注意:在(( ))中,=表示赋值;==表示判断
[root@server ~]# ((1==2));echo $?
[root@server ~]# ((1<2));echo $?
[root@server ~]# ((2&g