判断逻辑,文件,权限,数值
文档类型判断
- -f 判断filename是否为文件
- -d 判断filename是否为目
- -e 该档名是否存在
- -b 该档名是否是个块设备
- -c 该档名是否存在且为一个字符设备
- -S 该档名是否存在并且为一个Socket 接口文件。
- -p 该档名是否存在并且是一个管道文件
- -L 该档名是否为一个软链接
文件权限判断
- -r 判断该文档是否有可读权限
- -w 判断该文档是否有可写权限
- -x 判断该文档是否有可执行权限
- -s 判断该文档是否是空文档
- -u
- -g
- -k
两个文件之间的对比
- -nat判断file1 是否比file2 新
- -ot 判断file1 是否比file2 旧
- -ef 判断两个文件是否 为同一个文件
两个整数之间的判定
- -eq 两数相等
- -ne 两数不等于
- -gt n1大于n2
- -lt n1小于n2
- -ge n1大于等于n2
- -le n1小于等于n2
字符串判断
- -z 判断字符串是否为0? 若 string为空字符串,则为true
- -n 判断字符串是否为0? 若为空则为false
- -str1==str2 str1等于str2,若相等则回传true
- -str1!=str2 str1不等于str2,若相等则回传true
多重条件判断
- -a and 两状况同事成立!则true
- -o -or两个任何一个成立则true
- ! 取反,如 test ! -x file,当file不具有x 时则回传 true
判断文件属性
#!/bin/bash
#1.输入文档名,并且判断是否输入字符串
read -p "input a filename" filename
test -z $filename && echo "you MUST input a filename" && exit 0
#2. 判断文件是否存在,不存在则结束脚本
test ! -e $filename && echo " The filename '$filename' DO NOT exist " && exit 0
#3. 开始判断该文件的属性
test -f $filename && filetype="regulare file"
test -d $filename && filetype="directory"
test -r $filename && perm="readable"
test -w $filename && perm="${perm} writable"
test -x $filename && perm="${perm} executable"
#4. 开始输出
echo "The filename: $filename is a $filetype"
echo "And the permissions for you are: ${perm}"
~
网友评论