shell编程之 if 判断语句

  • 判断语句介绍 - if
  • 单if 语句(一个条件一个判断结果)
  • if..else 语句(一个条件两个判断结果)
  • if..elif..else 语句(多条件多个判断结果)
  • if嵌套if 语句
  • if 和命令的操作

判断语句介绍 - if

当编写程序时,需要对上一步执行代码是否执行成功进行判断,可以用if语句进行判断。通过查看if语句执行的判断结果查看代码是否执行成功

当满足条件的代码块中有exit ,表示退出脚本执行

注意: 注意if[]有空格,[]condition也有空格隔开,运算符也有空格。缩进可以任意缩进

单if 语句(一个条件一个判断结果)

适用范围: 一步判断,对给定的条件进行判断,条件返回Ture执行Ture语句,条件为False则不执行单if语句

if语法格式:

在脚本中:
	if [ condition ]		=>	true or false
		then			=>	条件为ture时执行commands代码块
			commands		=>	代码块,一行或者多行代码。
	fi						=>	if语句结束
#l 备注:在代码块中加入一行"exit 8",即结束脚本,后面的代码不再执行


在终端中:
	#if [ condition ]; then commands; fi

单if 语句流程图:

if test不写判断_条件判断

if…else 语句(一个条件两个判断结果)

适用范围: 两步判断,对给定的条件进行判断,条件返回Ture执行Ture语句,条件为False执行else语句。

if.else语法格式:

if [ condition ]
	then			=>	条件为真,执行commands1
		commands1
else				=>	条件为假,执行commands2
		command2
fi

if…else 语句流程图:

if test不写判断_Shell编程_02

if…elif…else 语句(多条件多个判断结果)

使用范围: 多用于两个以上的条件进行判断结果

条件从上至下进行判断,满足则执行条件下的语句并结束if判断。若都不满足则执行else的语句

else 这个条件不写也可以

if…elif…if 语法格式:

if [ condition1 ] 		=>	判断是否满足条件1,满足执行commands1,结束判断
	then
		commands1
elif [ condition2 ]		=>	当不满足条件1,判断是否满足条件2,满足执行commands2,结束判断
	then
		commands2
...
//else					=>	若上面的条件都不满足,则 执行else下的commandsx
//	commandsx			=>	可以不写
fi	

#l 备注:多条件判断之间存在包容关系,需要从最严格的条件开始判断,
		比如:判断系统内存使用率:
			60%			警告
			70%			严重警告
			80%			发邮件
			60%以下		打印使用率
		如果第一个条件判断是60%,那么70、80都符合第一个条件。后面的条件判断就没有意义了,因为高于60就执行警告,后面条件不执行了

if…elif…else 语句流程图:

if test不写判断_if test不写判断_03

if嵌套if 语句

适用范围: 当有多条判断时,可以使用if嵌套

if 条件判断成功,执行if 嵌套内容,否则执行else语句

编写的时候呀从外往里编写

if嵌套if 语句格式:

if [ condition1 ]
	then
	if [ condition2 ]		=>	当条件1满足,判断条件2是否满足,满足执行commands1
		then
			commands1
		...
	else					=>	条件2不满足执行commands2
		commands2
	fi
else					=>	当条件1不满足执行commands3
	commands3
fi



或



if [ condition1 ]		=>	当条件1满足,执行commands1
	then
		commands1
else		
	if [ condition2 ]	=>	当条件1不满足,条件2满足时,执行条件3
		then
		if [ condition3 ]		=>	当条件1不满足,条件23满足时,执行commands3
			then
				commands3
			else				=>	当条件1不满足,条件2满足时且条件3不满足,执行commands4
				commands4
			fi	
		...
	else			=>	当条件1和2都不满足时,执行commands5
		commands5
	fi
fi

if 和命令的操作

  • 系统会执行命令的操作,加入命令执行成功进入下一步操作
  • !选项代表非
  • 通过 echo $?查看,如果返回0表示执行成功,返回其他表示执行不成功
语法:
#	if options (命令)	
#		then 
#			command
#	fi
		options说明:
			!:表示命令执行不成功,则执行command