条件Condition必须是真或假,且永远如此。
下面举两个例子来说明if语句的用法。第一个例子是让程序判断一个盒子是否已装满,条件是盒子最多只能装下100个小甜饼。
if[$Quantity -eq 100] then echo "The box is full" fi这个语句让程序检测一下变量Quantity的值,看它是否是100。如果是,则在屏幕上显示:
再举一个例子,要求程序检测一下盒子是否已满,及是否还有其他的盒子可获得。当且仅当这两个条件同时是真时,程序才会报告无法再装甜饼了,如下例所示:
if [$Quantity -eq 100 ] &&[$AvailableBoxes -lt 1] then echo "The box is full and you have no more boxes,” fi这条语句要求程序检测一下变量Quantity的值,看它是否是100,及变量AvailableBoxes的
当然,也可以再用一条if语句来解决这个问题,即在条件为假时让程序执行另一组指令。但是,有一种方法比这更简单,这就是if else语句。if else语句的语法规则是:
if[Condition]
then
Instruction1
else
Instruction2
fi
这条语句表示,如果Condition条件为真,程序则执行第一组指令(Instruction1);如果Condition(条件)为假,则程序执行第二组指令(Instruclian2 )
例如:
if[$Quantity -eq 100] then echo "The box is full" else echo "The box is not full" fi
if elif语句的语法规则如下:
if[Condition1]
then
Instruction1
elif [Condition2 ]
then
Instruction2
fi
在这条语句中,如果条件Condition1是真,程序则执行第一组指令Instruction1 ;否则,程序再判断条件Condition2是否是真。如果条件不为真,程序则执行第二组指令Instruction2;如果Condition2是假,则跳过第二组指令。
例子:
if[$Quantity -eq 100] then echo "The box is full" elif [$Quantity -eq 95] echo "You can add 5 cookies to the box." fi
fi
在这条语句中,如果Condition1是真,程序执行第一组指令Instruction1 ;否则,检测条件Condition2是否是真。如果条件Condition2是真,则执行第二组指令Instruction2 ;否则,检测Condition3是否是真。若条件Condition3是真,则执行第三组指令Instruction3;否则,跳过第三组指令Instruction3。
if[Condition1]
then
Instruction1
elif[Condition2]
then
Instruction2
elif[Condition3]
then
Instruction3
elif
Instruction4
fi
在这条语句中,如果Condition1是真,程序执行第一组指令Instruction1 ;否则,检测条件Condition2是否是真。如果条件Condition2是真,则执行第二组指令Instruction2 ;否则,检测Condition3是否是真。若条件Condition3是真,则执行第三组指令Instruction3;否则,执行第四组指令Instruction4。