利志分享
fast_forward
view_headline
开发工具箱
go教程
clickhouse教程
kafka教程
python教程
shell教程
原创杂文
打赏
开发工具箱
go教程
clickhouse教程
kafka教程
python教程
shell教程
原创杂文
打赏
shell基础
shell变量和数组
shell参数和if语句
shell运算和文件运算
shell流程控制语句
shell函数和重定向
目录
shell基础
shell变量和数组
shell参数和if语句
shell运算和文件运算
shell流程控制语句
shell函数和重定向
shell运算和文件运算
阅读:1337
分享次数:0
#!/bin/bash # shell运算和文件运算 # 布尔运算符 # ! 非运算,表达式为 true 则返回 false,否则返回 true。 [ ! false ] 返回 true。 # -o 或运算,有一个表达式为 true 则返回 true。 [ $a -lt 20 -o $b -gt 100 ] 返回 true。 # -a 与运算,两个表达式都为 true 才返回 true。 [ $a -lt 20 -a $b -gt 100 ] 返回 false。 a=100 b=200 if [ $a != $b ] then echo "$a != $b: a不等于b" else echo "$a != $b: a等于b" fi if [ $a -lt 100 -a $b -gt 15 ] then echo "$a -lt 100 -a $b -gt 15 : 返回 true" else echo "$a -lt 100 -a $b -gt 15 : 返回 false" fi if [ $a -lt 100 -o $b -gt 100 ] then echo "$a -lt 100 -o $b -gt 100 : 返回 true" else echo "$a -lt 100 -o $b -gt 100 : 返回 false" fi if [ $a -lt 5 -o $b -gt 100 ] then echo "$a -lt 100 -o $b -gt 100 : 返回 true" else echo "$a -lt 100 -o $b -gt 100 : 返回 false" fi # 逻辑运算符 # && 逻辑的 AND [[ $a -lt 100 && $b -gt 100 ]] 返回 false # || 逻辑的 OR [[ $a -lt 100 || $b -gt 100 ]] 返回 true 字符串运算符 # = 检测两个字符串是否相等,相等返回 true。 [ $a = $b ] 返回 false。 # != 检测两个字符串是否相等,不相等返回 true。 [ $a != $b ] 返回 true。 # -z 检测字符串长度是否为0,为0返回 true。 [ -z $a ] 返回 false。 # -n 检测字符串长度是否为0,不为0返回 true。 [ -z $a ] 返回 true。 # str 检测字符串是否为空,不为空返回 true。 [ $a ] 返回 true。 a="abcd" b="edfg" if [ $a = $b ] then echo "$a = $b : a 等于 b" else echo "$a = $b: a 不等于 b" fi if [ $a != $b ] then echo "$a != $b : a 不等于 b" else echo "$a != $b: a 等于 b" fi if [ -z $a ] then echo "-z $a : 字符串长度为 0" else echo "-z $a : 字符串长度不为 0" fi if [ -n $a ] then echo "-n $a : 字符串长度不为 0" else echo "-n $a : 字符串长度为 0" fi if [ $a ] then echo "$a : 字符串不为空" else echo "$a : 字符串为空" fi # 文件测试运算符 可以用test -b file 这样 # -b file 检测文件是否是块设备文件,如果是,则返回 true。 [ -b $file ] 返回 false。 # -c file 检测文件是否是字符设备文件,如果是,则返回 true。 [ -b $file ] 返回 false。 # -d file 检测文件是否是目录,如果是,则返回 true。 [ -d $file ] 返回 false。 # -f file 检测文件是否是普通文件(既不是目录,也不是设备文件),如果是,则返回 true。 [ -f $file ] 返回 true。 # -g file 检测文件是否设置了 SGID 位,如果是,则返回 true。 [ -g $file ] 返回 false。 # -k file 检测文件是否设置了粘着位(Sticky Bit),如果是,则返回 true。 [ -k $file ] 返回 false。 # -p file 检测文件是否是具名管道,如果是,则返回 true。 [ -p $file ] 返回 false。 # -u file 检测文件是否设置了 SUID 位,如果是,则返回 true。 [ -u $file ] 返回 false。 # -r file 检测文件是否可读,如果是,则返回 true。 [ -r $file ] 返回 true。 # -w file 检测文件是否可写,如果是,则返回 true。 [ -w $file ] 返回 true。 # -x file 检测文件是否可执行,如果是,则返回 true。 [ -x $file ] 返回 true。 # -s file 检测文件是否为空(文件大小是否大于0),不为空返回 true。 [ -s $file ] 返回 true。 # -e file 检测文件(包括目录)是否存在,如果是,则返回 true。 [ -e $file ] 返回 true。 file="/root/shell/3.sh" if [ -r $file ] then echo "文件可读" else echo "文件不可读" fi if [ -w $file ] then echo "文件可写" else echo "文件不可写" fi if [ -x $file ] then echo "文件可执行" else echo "文件不可执行" fi if [ -f $file ] then echo "文件为普通文件" else echo "文件为特殊文件" fi if [ -d $file ] then echo "文件是个目录" else echo "文件不是个目录" fi if [ -s $file ] then echo "文件不为空" else echo "文件为空" fi if [ -e $file ] then echo "文件存在" else echo "文件不存在" fi
感觉本站内容不错,读后有收获?
attach_money
我要小额打赏,鼓励作者写出更好的教程
扫码关注公众号:talk_lizhi