if语句使用举例

if快捷键

——————————————————————————————————

[ ] && 如果为真则执行后面

[ ] || 如果为假则执行后面


文件表达式

——————————————————————————————————

if [ -f  file ]    如果文件存在
if [ -d dd   ]    如果目录存在
if [ -s file  ]    如果文件存在且非空 
if [ -r file  ]    如果文件存在且可读
if [ -w file  ]    如果文件存在且可写
if [ -x file  ]    如果文件存在且可执行


字符串表达式

——————————————————————————————————

注意:“==” 的功能在[[]] 和[] 中是不一样的([[]]中不需要用转义字符)

if [ "$string" != "string2" ]
if [ "$string" =="string2" ]
if [ "$string1" \> "string2" ]
if [ "$string1" \< "string2" ] 或者是  if [[ "$string1" < "string2" ]]
if  [ -n $string  ]             如果string 非空(非0),返回0(true) 
if  [ -z $string  ]             如果string 为空
if  [ $sting ]                  如果string 非空,返回0 (和-n类似)


整数变量表达式

——————————————————————————————————

-eq 等于,如:if [ "$a" -eq "$b" ]   
-ne 不等于,如:if [ "$a" -ne "$b" ]   
-gt 大于,如:if [ "$a" -gt "$b" ]   
-ge 大于等于,如:if [ "$a" -ge "$b" ]   
-lt 小于,如:if [ "$a" -lt "$b" ]   
-le 小于等于,如:if [ "$a" -le "$b" ]   
<   小于(需要双括号),如:(("$a" < "$b"))   
<=  小于等于(需要双括号),如:(("$a" <= "$b"))   
>   大于(需要双括号),如:(("$a" > "$b"))   
>=  大于等于(需要双括号),如:(("$a" >= "$b")


逻辑表达式

——————————————————————————————————

逻辑非 !               条件表达式的相反
if [ ! 表达式 ]
if [ ! -d $num ]        如果不存在目录$num
 
    逻辑与 –a              条件表达式的并列
if [ 表达式1  –a  表达式2 ]
 
    逻辑或 -o               条件表达式的或
if [ 表达式1  –o 表达式2 ]
    表达式与前面的=  != -d –f –x -ne -eq -lt等合用
    逻辑符号就正常的接其他表达式,没有任何括号( ),就是并列
if [ -z "$JHHOME" -a -d $HOME/$num ]
    注意逻辑与-a与逻辑或-o很容易和其他字符串或文件的运算符号搞混了


if语句使用举例

#!/bin/bash
##filename:areyouok.sh
echo "Are you OK ?"
read answer
# 在 if 的条件判断部分使用扩展的 test 语句 [[...]]
# [[]] 中可以使用正则表达式进行条件匹配
if [[ $answer == [Yy]* || $answer == [Mm]aybe ]]
then
echo "Glad to hear it."
fi


#!/bin/bash
##filename:ask-age.sh
read -p"How old are you?"  age 
#使用Shell算数运算符(())进行条件测试
if((age<0||age>120));then
        echo "Out of range!"
        exit 1
fi
#使用多分支if语句
if((age>=0&&age<13));then
        echo "Child!"
elif((age>=13&&age<20));then
        echo "Callan!"
elif((age>=20&&age<30));then
        echo "PIII!"
elif((age>=30&&age<40));then
        echo "PIV"
else
        echo "Sorry I asked."
fi



#!/bin/bash
##filename:useronline.sh
#if语句可以嵌套使用
if [ $# -eq 1 ] #或test $# -eq 1 或 [[ $#==1  ]] 或 (($#==1))
    then
        if who|grep ^$1>/dev/null
        then echo "$1 is active."
        else echo "$1 is not active."
        fi
    else
            echo "Usage:$0<username>"
            exit
    fi 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值