05Operator
基本运算符
  a=10
  b=20
- 算数运算符
- val=`expr ${a} + ${b}`
 echo "a + b : ${val}" # 30
 val=`expr ${a} - ${b}`
 echo "a - b : ${val}" # -10
 val=`expr ${a} \* ${b}`
 echo "a * b : ${val}" # 200
 val=`expr ${b} / ${a}`
 echo "b / a : ${val}" # 2
 val=`expr ${b} % ${a}`
 echo "b % a : ${val}" # 0
 if [ ${a} == ${b} ]
 then
 echo "a 等于 b"
 fi
 if [ ${a} != ${b} ]
 then
 echo "a 不等于 b" #
 fi
 
- val=`expr ${a} + ${b}`
- 关系运算符
- if [ ${a} -eq ${b} ] # 检测两个数是否相等,相等返回 true。
 then
 echo "${a} -eq ${b} : a 等于 b"
 else
 echo "${a} -eq ${b}: a 不等于 b"
 fi
 if [ ${a} -ne ${b} ] # 检测两个数是否相等,不相等返回 true。
 then
 echo "${a} -ne ${b}: a 不等于 b"
 else
 echo "${a} -ne ${b} : a 等于 b"
 fi
 if [ ${a} -gt ${b} ] # 检测左边的数是否大于右边的,如果是,则返回 true。
 then
 echo "${a} -gt ${b}: a 大于 b"
 else
 echo "${a} -gt ${b}: a 不大于 b"
 fi
 if [ ${a} -lt ${b} ] # 检测左边的数是否小于右边的,如果是,则返回 true。
 then
 echo "${a} -lt ${b}: a 小于 b"
 else
 echo "${a} -lt ${b}: a 不小于 b"
 fi
 if [ ${a} -ge ${b} ] # 检测左边的数是否大于等于右边的,如果是,则返回 true。
 then
 echo "${a} -ge ${b}: a 大于或等于 b"
 else
 echo "${a} -ge ${b}: a 小于 b"
 fi
 if [ ${a} -le ${b} ] # 检测左边的数是否小于等于右边的,如果是,则返回 true。
 then
 echo "${a} -le ${b}: a 小于或等于 b"
 else
 echo "${a} -le ${b}: a 大于 b"
 fi
 
- if [ ${a} -eq ${b} ] # 检测两个数是否相等,相等返回 true。
- 布尔运算符
- if [ ${a} != ${b} ] # 非运算,表达式为 true 则返回 false,否则返回 true。
 then
 echo "${a} != ${b} : a 不等于 b"
 else
 echo "${a} != ${b}: a 等于 b"
 fi
 if [ ${a} -lt 100 -o ${b} -gt 100 ] # 或运算,有一个表达式为 true 则返回 true。
 then
 echo "${a} 小于 100 或 ${b} 大于 100 : 返回 true"
 else
 echo "${a} 小于 100 或 ${b} 大于 100 : 返回 false"
 fi
 if [ ${a} -lt 100 -a ${b} -gt 15 ] # 与运算,两个表达式都为 true 才返回 true。
 then
 echo "${a} 小于 100 且 ${b} 大于 15 : 返回 true"
 else
 echo "${a} 小于 100 且 ${b} 大于 15 : 返回 false"
 fi
 
- if [ ${a} != ${b} ] # 非运算,表达式为 true 则返回 false,否则返回 true。
- 逻辑运算符
- if [[ ${a} -lt 100 && ${b} -gt 100 ]] # AND
 then
 echo "返回 true"
 else
 echo "返回 false"
 fi
 if [[ ${a} -lt 100 || ${b} -gt 100 ]] # OR
 then
 echo "返回 true"
 else
 echo "返回 false"
 fi
 
- if [[ ${a} -lt 100 && ${b} -gt 100 ]] # AND
- 字符串运算符
- a="abc"
 b="efg"
 if [ ${a} = ${b} ] # 检测两个字符串是否相等,相等返回 true。
 then
 echo "${a} = ${b} : a 等于 b"
 else
 echo "${a} = ${b}: a 不等于 b"
 fi
 if [ ${a} != ${b} ] # 检测两个字符串是否相等,不相等返回 true。
 then
 echo "${a} != ${b} : a 不等于 b"
 else
 echo "${a} != ${b}: a 等于 b"
 fi
 if [ -z ${a} ] # 检测字符串长度是否为0,为0返回 true。
 then
 echo "-z ${a} : 字符串长度为 0"
 else
 echo "-z ${a} : 字符串长度不为 0"
 fi
 if [ -n ${a} ] # 检测字符串长度是否为0,不为0返回 true。
 then
 echo "-n ${a} : 字符串长度不为 0"
 else
 echo "-n ${a} : 字符串长度为 0"
 fi
 if [ ${a} ] # 检测字符串是否为空,不为空返回 true。
 then
 echo "${a} : 字符串不为空"
 else
 echo "${a} : 字符串为空"
 fi
 
- a="abc"
- 文件测试运算符
- file="/home/donny/test.sh"
 if [ -r $file ] # 检测文件是否可读,如果是,则返回 true。
 then
 echo "文件可读"
 else
 echo "文件不可读"
 fi
 if [ -w $file ] # 检测文件是否可写,如果是,则返回 true。
 then
 echo "文件可写"
 else
 echo "文件不可写"
 fi
 if [ -x $file ] # 检测文件是否可执行,如果是,则返回 true。
 then
 echo "文件可执行"
 else
 echo "文件不可执行"
 fi
 if [ -f $file ] # 检测文件是否是普通文件,如果是,则返回 true。
 then
 echo "文件为普通文件"
 else
 echo "文件为特殊文件"
 fi
 if [ -d $file ] # 检测文件是否是目录,如果是,则返回 true。
 then
 echo "文件是个目录"
 else
 echo "文件不是个目录"
 fi
 if [ -s $file ] # 检测文件是否为空(文件大小是否大于0),不为空返回 true。
 then
 echo "文件不为空"
 else
 echo "文件为空"
 fi
 if [ -e $file ]
 then
 echo "文件存在"
 else
 echo "文件不存在"
 fi
 
- file="/home/donny/test.sh"
posted on 2017-10-12 18:08 唐先生_DowneyJr 阅读(143) 评论(0) 收藏 举报
 
                    
                 
                
            
         
 浙公网安备 33010602011771号
浙公网安备 33010602011771号