shell的awk中用if..else,怎么多条件嵌套

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell的awk中用if..else,怎么多条件嵌套相关的知识,希望对你有一定的参考价值。

下面是我写的awk中多条件语句,总是在第2个print语句显示语法错误
cat $path/zliu_ciliu5.txt|awk 'if($5>=0.2&&$4!=0)print $0,"1"elseif($5<=0.05||$4==0)print $0,"4"elseif($7>=0.3&&$6>=0.5&&$3>=0.2&&$4>=0.03)print $0,"2"elseprint $0,"3"'

参考技术A else和if之间要有个空格本回答被提问者采纳

shell编程之 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…else 语句(一个条件两个判断结果)

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

if.else语法格式:

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

if…else 语句流程图:
在这里插入图片描述

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%,那么7080都符合第一个条件。后面的条件判断就没有意义了,因为高于60就执行警告,后面条件不执行了

if…elif…else 语句流程图:

在这里插入图片描述

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			=>	当条件12都不满足时,执行commands5
		commands5
	fi
fi

if 和命令的操作

  • 系统会执行命令的操作,加入命令执行成功进入下一步操作

  • !选项代表非

  • 通过 echo $?查看,如果返回0表示执行成功,返回其他表示执行不成功

语法:
#	if options (命令)	
#		then 
#			command
#	fi
		options说明:
			!:表示命令执行不成功,则执行command

以上是关于shell的awk中用if..else,怎么多条件嵌套的主要内容,如果未能解决你的问题,请参考以下文章

关于linux shell的if else 你知道多少

shell条件判断 if else

shell awk中用for循环遍历列数据,需要结果显示为一行并换行显示而不是跟提示符在同一行,帮忙看下怎么改?

在mysql中用if…else语句判断当天是不是为星期天?

python笔记4-if..elif-else条件语句

BAT用if-else判断