条件判断
之前顺序执行无语法
条件判断、循环判断、函数等都要有语法
条件判断可以控制命令的运行,不再是单纯的按顺序执行
学习条件判断之前需要先了解Shell返回值
Shell的返回值,运行一条命令,都会有一个返回值。0代表执行正常,非0代表命令执行异常
ls /
echo $? #返回值放到$?变量中
ls /nononono
echo $?
自编写Shell脚本如何设置返回值
显示使用exit
没有使用exit的话,以最后一条命令的返回值作为脚本的返回值
Bash Shell条件判断的语法
if 条件; then
#条件成立执行的命令,可以有多个命令。命令块(要嘛都执行,要嘛都不执行)
fi
if 条件; then
#条件成立执行的命令,可以有多个命令。命令块
else
#条件不成立执行的命令,可以多个命令
fi
条件可以有数字判断、字符串判断、文件判断等
条件判断之数字判断语法
$number1 -eq $nubmer2 #是否相等 equal
$number1 -ne $nubmer2 #是否不相等 not equal
$number1 -gt $nubmer2 #是否大于 greater than
$number1 -ge $nubmer2 #是否大于等于 greater or equal
$number1 -lt $nubmer2 #是否小于 less than
$number1 -le $nubmer2 #是否小于等于 less or equal
test命令或者[ ]命令可测试判断,返回0代表判断成立,返回非0代表判断不成立
test 2 -eq 2
echo $?
test 3 -eq 2
echo $?
[ 2 -eq 2 ] #编程中习惯使用[ ]中括号
echo $?
最简单的条件判断案例
number1=3
number2=3
if [ $number1 -eq $number2 ];then
echo "$number1 equal $number2"
echo "in if"
fi
数字判断案例,注意缩进习惯。命令块,要嘛同时运行、要同时不运行
number1=3
number2=4
if [ $number1 -eq $number2 ];then
echo "$number1 equal $number2"
echo "in if"
echo "jackin"
else
echo "$number1 not equal $number2"
echo "in else"
fi