一、text
text常用于比大小,和 与或非 联系紧密,在shell编程中经常用到!
1)命令分类详解
注意以下 括号两边都有空格!!
等不等
[ "$A" = "$B" ] >> 是否相等 (相等为真)
[ "$A" != "$B" ] 是否不相等 (不想等为真)
[ "$A" -eq "$B" ] 是否相等 (相等为真)
[ "$A" -ne "$B" ] 是否不相等 (不相等为真)
大于小于
[ "$A" -le "$B" ] 是否小于 (小于为真)
[ "$A" -lt "$B" ] 是否小于等于 (小于等于为真)
[ "$A" -ge "$B" ] 是否大于 (大于为真)
[ "$A" -gt "$B" ] 是否大于等于 (大于等于为真)
与或
[ "$A" -ne "$B" -a "$A" -gt "$B" ] >> A 不等于 B 并且 A 大于等于B
[ "$A" -ne "$B" -o "$A" -gt "$B" ] >> A不等于B 或者 A大于等于B
空不空
[ -z "$A" ] >> 是否为空(zero,$A为空为真)
[ -n "$A" ] 是否不为空 ($A不为空为真)
文件新旧(是为真)
[ "file1" -nt "file2" ] 判断file1是否比file2新
[ "file1" -ot "file2" ] 判断file1是否比file2旧
[ "file1" -ef "file2" ] 两个文件节点是否相同,是否为同一个文件
文件类型(是为真)
[ -e "file" ] 文件是否存在
[ -f "file" ] 文件是否为普通文件
[ -L "file" ] 文件是否为符号链接
[ -S "file" ] 文件是否为套接字
[ -b "file" ] 文件是否为块设备
[ -d "file" ] 文件是否为目录
[ -c "file" ] 文件是否为特殊文件
2)简介shell编程中的与或非
&& >>>>用来执行条件成立后执行的命令
|| >>>>用来执行条件不成立后执行的命令
3)text命令使用示例
示例1-----是否相等
[root@allen mnt]# a=1 >> 赋值
[root@allen mnt]# b=1 >> 赋值
[root@allen mnt]# [ "$a" = "$b" ] && echo yes || echo no >>text命令的使用
yes >>输出的结果,相等
[root@allen mnt]# a=2 >> 赋值
[root@allen mnt]# [ "$a" = "$b" ] && echo yes || echo no
no >>输出的结果,不相等
[root@allen mnt]#
示例2----是否为空
[root@allen mnt]# a=1 >> 给a赋值
[root@allen mnt]# echo $a >>打印变量a的值
1
[root@allen mnt]# echo $c >>打印变量c的值
>>没有给从c赋值,所以为空
[root@allen mnt]# [ -z "$a" ] && echo zero || echo not zero >>为空打为真打印zero
not zero >>打印的是 not zero,所以不为空
[root@allen mnt]# [ -z "$c" ] && echo zero || echo not zero >>为空打为真打印zero
zero >>打印的是 zero,所以为空
[root@allen mnt]#
示例3----文件类型
[root@allen mnt]# ls
file1 text text1 text2 text.orig text.path
[root@allen mnt]# [ -e "file1" ] && echo yes || echo no >>是否存在
yes
[root@allen mnt]# [ -f "file1" ] && echo yes || echo no >>是否为普通文件
yes
[root@allen mnt]# [ -L "file1" ] && echo yes || echo no >>是否为符号链接
no
[root@allen mnt]#
二、tr命令
tr命令通常用于字母大小写转换
在脚本中写
WORD=$( echo $1 | tr 'A-Z' 'a-z' )
>>输入由大写转换为小写,并且作为一个变量存在,前面要加$符号
>>输入$1由大写转换成小写赋值给WORD
tr 'a-z' 'A-Z' >>小写转换为大写
示例:
[root@allen mnt]# vim Change.sh ##编写脚本
[root@allen mnt]# sh Change.sh HELLO ##执行脚本并输入HELLO
显然输出为小写的hello