shell腳本中的邏輯判斷
- 格式1:if 條件 ; then 語句; fi
- 格式2:if 條件; then 語句; else 語句; fi
- 格式3:if …; then … ;elif …; then …; else …; fi
- 邏輯判斷表達式:if [ $a -gt $b ]; if [ $a -lt 5 ]; if [ $b -eq 10 ]等 -gt (>); -lt(<); -ge(>=); -le(<=);-eq(==); -ne(!=) 注意處處都是空格
- 可使用 && || 結合多個條件
- if [ $a -gt 5 ] && [ $a -lt 10 ]; then
- if [ $b -gt 5 ] || [ $b -lt 3 ]; then
[root@hf-01 ~]# for i in `seq 1 5`; do echo $i;done
1
2
3
4
5
[root@hf-01 ~]#
[root@hf-01 ~]# for i in `seq 1 5`
> do
> echo $i
> done
1
2
3
4
5
[root@hf-01 ~]#
if語句第一種格式
[root@hf-01 shell]# vim if1.sh
#! /bin/bash
a=5
if [ $a -gt 3 ]
then
echo OK
fi
[root@hf-01 shell]# sh 03.sh
OK
[root@hf-01 shell]#
if語句第二種格式
- 格式2:if 條件; then 語句; else 語句; fi
[root@hf-01 shell]# cp if1.sh if2.sh
[root@hf-01 shell]# vim if2.sh
[root@hf-01 shell]# sh -x if1.sh
+ a=1
+ '[' 1 -gt 3 ']'
+ echo nook
nook
[root@hf-01 shell]# cat if2.sh
#! /bin/bash
a=1
if [ $a -gt 3 ]
then
echo OK
else
echo nook
fi
[root@hf-01 shell]#
if語句第三種格式
- 格式3:if …; then … ;elif …; then …; else …; fi
[root@hf-01 shell]# vim if3.sh
[root@hf-01 shell]# cat if3.sh
#! /bin/bash
a=6
if [ $a -lt 5 ]
then
echo "<5"
elif [ $a -gt 5 ] && [ $a -lt 9 ]
then
echo "5<a<9"
else
echo ">9"
fi
[root@hf-01 shell]# sh -x if3.sh
+ a=6
+ '[' 6 -lt 5 ']'
+ '[' 6 -gt 5 ']'
+ '[' 6 -lt 9 ']'
+ echo '5<a<9'
5<a<9
[root@hf-01 shell]#
- 邏輯判斷表達式
- if [ $a -gt $b ] 表示,大於
- if [ $a -lt 5 ] 表示,小於
- if [ $b -eq 10 ] 表示,等於10
- -ne(!=) 表示,不等於
- -ge(>=) 表示,大於等於
- -le(<=) 表示,小於等於
- 可使用 && || 結合多個條件
- if [ $a -gt 5 ] && [ $a -lt 10 ]; then
- if [ $b -gt 5 ] || [ $b -lt 3 ]; then