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 总结
- (( )) 和 [[ ]] 的用法式一致的,他们都可以使用&&,||,!来进行逻辑判断;
- (( )) 和 [[ ]] 内部可以使用>,<...等符号进行判断;
- [ ] 通常内部使用-a,-gt,-n...这些符合进行判断;并且[ ]的功能要更强大一点;
如果不熟悉shell脚本中的判断规则的,那么建议使用(( )) 和 [[ ]];
如果想结合[ ] 来使用shell内部的判断条件,可以参考以下文章,来了解文件内部的判断: