Shell脚本中逻辑与,逻辑或,逻辑非

Shell脚本中逻辑与,逻辑或,逻辑非

前言

shell语言可以使用和其他编程语言一样的逻辑与(&&)、逻辑或(||)、逻辑非(!);

如果您式高手的话,并且属性shell语言中的逻辑判断的话,那么可以结合-a(逻辑与),-o(逻辑或),!(逻辑非)来进行逻辑判断;

1 [ ] 表达式表示逻辑表达式

代码样例

#!/bin/bash
name=bulingfeng
if [ -n "$name" -a  $name == "bulingfeng" ]
	then
		echo "name's content is bulingfeng"
	else
		echo "name's content is not  bulingfeng"
fi

注意事项

  • if的后面一定要有空格,否则则会报 syntax error in expression(语法结构表达式异常);
  • [ ] 中的前后一定要有空格来进行隔开;

检验shell语法是否写的正确(空格是否加对)小技巧

使用vim查看,如果if等关键字的颜色都正常显示,则说明没有问题,否则则需要检查空格,以及其他符号是否编写正确;

2 (( )) 和逻辑&&,||, ! 配合使用

shell样例

#!/bin/bash
age=28
if (( $age > 20 ))&&(( $age == 28 ))
	then
		echo "该年龄符合要求"
	else
		ehco "该年龄不符合要求"
fi

逻辑者和逻辑的用法参考上面即可;

3 [[ ]] 和逻辑&&,||, ! 配合使用

代码样例

#!/bin/bash
age=28
if [[ $age > 20 ]]&&[[ $age == 28 ]]
	then
		echo "该年龄符合要求"
	else
		echo "该年龄不符合要求"
fi

逻辑者和逻辑的用法参考上面即可;

4 总结

  1. (( )) 和 [[ ]] 的用法式一致的,他们都可以使用&&,||,!来进行逻辑判断;
  2. (( )) 和 [[ ]] 内部可以使用>,<...等符号进行判断;
  3. [ ] 通常内部使用-a,-gt,-n...这些符合进行判断;并且[ ]的功能要更强大一点;

如果不熟悉shell脚本中的判断规则的,那么建议使用(( )) 和 [[ ]];

如果想结合[ ] 来使用shell内部的判断条件,可以参考以下文章,来了解文件内部的判断:

shell判断总结

posted @ 2022-03-25 17:01  bulingfeng  阅读(5617)  评论(0编辑  收藏  举报