20.5 shell腳本中的邏輯判斷

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

shell腳本中的邏輯判斷,shell注意點

  • for語句循環
[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語句第一種格式

  • 格式1:if 條件 ; then 語句; fi
[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
相關文章
相關標籤/搜索