前言
编写bash脚本,分支语法经常会被用到,需要掌握其规则。if/else系列基本有四种分支语法,包括if、if…else、if…elif…else 和 嵌套if。
基本语法
if
if CONDITION
then
STATEMENTS
fi
方法示例:打印奇数
for i in {0..20}
do
if [ $(($i % 2)) -gt 0 ]
then
echo "process: $i"
fi
done
if…else
if CONDITION
then
STATEMENTS1
else
STATEMENTS2
fi
方法示例:
for i in {0..20}
do
if [ $(($i % 2)) -gt 0 ]
then
echo "process: $i"
else
echo "not process: $i"
fi
done
注:bash中四则运算要使用双重圆括号(()),运算号(如%)两边需要空格。
if…elif…else
if CONDITION1
then
STATEMENTS1
elif CONDITION2
then
STATEMENTS2
else
STATEMENTS3
fi
方法示例:
for i in {0..20}
do
if [ $i -lt 10 ]
then
echo "$i < 10"
elif [ $i -lt 15 ]
then
echo "10 <= $i < 15"
else
echo "15 <= $i <= 20"
fi
done
嵌套if
if CONDITION1
then
if CONDITION2
then
STATEMENTS
fi
fi
for i in {0..20}
do
if [ $i -gt 10 ]
then
if [ $i -lt 15 ]
then
echo "10 < $i < 15"
else
echo "15 <= $i <= 20"
fi
fi
done
附:Bash中的数值比较
符号 | 释义 | 使用 |
---|---|---|
-eq | equal,等于 | [ $num1 -eq $num2 ] |
-ne | not equal,不等于 | [ $num1 -ne $num2 ] |
-gt | greater than,大于 | [ $num1 -gt $num2 ] |
-ge | greater and equal,大于等于 | [ $num1 -ge $num2 ] |
-lt | less than,小于 | [ $num1 -lt $num2 ] |
-le | less and equal,小于等于 | [ $num1 -le $num2 ] |
版权说明
本文章独家发布在blog.csdn.net/TracelessLe。未经个人允许不得转载。如需帮助请email至tracelessle@163.com。
参考资料
[1] Linuxize - Bash For if/else
[2] linux bash算术运算和条件语句 - 小石王 - 博客园