文件表达式 -e filename 如果 filename存在,则为真 -d filename 如果 filename为目录,则为真 -f filename 如果 filename为常规文件,则为真 -L filename 如果 filename为符号链接,则为真 -r filename 如果 filename可读,则为真 -w filename 如果 filename可写,则为真 -x filename 如果 filename可执行,则为真 -s filename 如果文件长度不为0,则为真 -h filename 如果文件是软链接,则为真 filename1 -nt filename2 如果 filename1比 filename2新,则为真。 filename1 -ot filename2 如果 filename1比 filename2旧,则为真。
整数变量表达式 -eq 等于 -ne 不等于 -gt 大于 -ge 大于等于 -lt 小于 -le 小于等于
字符串变量表达式
If [ b ] 如果string1等于string2,则为真
字符串允许使用赋值号做等号
if [ string2 ] 如果string1不等于string2,则为真
if [ -n string ] 如果string 为空,则为真
if [ $sting ] 如果string 非空,返回0 (和-n类似)
逻辑非 ! 条件表达式的相反
if [ ! 表达式 ] if [ ! -d num
逻辑与 –a 条件表达式的并列
if [ 表达式1 –a 表达式2 ]
逻辑或 -o 条件表达式的或
if [ 表达式1 –o 表达式2 ]
#!/bin/bash echo "Please enter a number" read num if [ -z num ] #判断是否输入了数字 then echo "you enter nothing,please enter a number" read num else if [ num -lt 0 -o num -gt 100 ] #判断数据是否合法 then echo "The number is invalid,please enter a number" read num else if [ num -ge 90 ] #大于等于90,成绩等级为A then echo "The grade is A" else if [ num -ge 80 ] #大于等于80,成绩等级为B then echo "The grade is B" else if [ num -ge 70 ] #大于等于70,等级等级为C then echo "The grade is C" else if [ $num -ge 60 ] #大于等于60,成绩等级为D then echo "The grade is D" else echo "The grade is E" #小于60,成绩等级为E fi fi fi fi fi fi
!/bin/bash
echo "please input your grade:" read a if [ a -ge 90 ] #大于 -gt (greater than) then #小于 -lt (less than) echo 'A' #大于或等于 -ge (greater than or equal) elif [ a -ge 80 ] #小于或等于 -le (less than or equal) then #不相等 -ne (not equal) echo 'B' elif [ a -ge 60 ] then echo 'D' else echo 'E' fi IF条件判断
1、基本语法: if [ command ]; then 符合该条件执行的语句 fi
2、扩展语法: if [ command ];then 符合该条件执行的语句 elif [ command ];then 符合该条件执行的语句 else 符合该条件执行的语句 fi
5:两个变量判断是否相等 if [ "var2" ]; then echo 'var2' else echo 'var2' fi
$#:传入脚本的参数个数;
$0: 脚本自身的名称;
$1: 传入脚本的第一个参数;
$2: 传入脚本的第二个参数;
$@: 传入脚本的所有参数;
$*:传入脚本的所有参数;