shell脚本编程学习笔记-逻辑操作符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本编程学习笔记-逻辑操作符相关的知识,希望对你有一定的参考价值。

1.1 下表为逻辑操作符

技术分享图片

提示:

!中文意思是反:与一个逻辑值相反的逻辑值。

-a中文意思是与(&&):两个逻辑值都为真返回值才为真,反之为假。

-o中文意思是或(or):两个逻辑值只要一个为真,返回值为真。

结论:

(1)-a和&&的运算规则:只有两端都是1才为真相当于乘法运算。

真 true 1 假 false 0

And 1*0=0

And 0*1=0

And 1*1=1

And 0*0=0

只有两端都是1才为真,and交集

(2)-o或||两端都是0才为假,任何一端不为0都是真

Or 1+0=1 真

Or 1+1=2 真

Or 0+1=1 真

Or 0+0=0 假

两端都是0才为假,不为0就是真。Or 并集

(3)这里有一个系统不等于的例子

技术分享图片

例子演示:

技术分享图片

1.2 实践

(1)“-a”和 “-o”,逻辑运算符号用于[]中使用。

(2)“&&”和 “||”,逻辑运算符号用于[[ ]]中使用。

技术分享图片

(3)注意括号两端,必须要有空格。

1.3 系统脚本例子

技术分享图片

1.4 小结:逻辑操作符使用总结

(1)[ ]中用-a,-o,!

(2) [[ ]]中用&&,||,!

(3)Test用法和[]相同。

(4)多个[]之间以及多个[[ ]]之间,或者任意混合中间逻辑操作符都是&&或||。

1.5 综合实例:

(1)以定义变量、脚本传参、以及read读入的方式比较两个整数的大小用条件表达式(禁止用if)进行判断并以屏幕输出的方式提醒用户比较结果。一共开发3个脚本,当用脚本传参以及read读入的方式需要对变量是否为数字、并且传参个数不对给与提示。

a.脚本传参方式

技术分享图片

技术分享图片

b.Read读入的方式

技术分享图片

技术分享图片

定义变量就是将read读入中的a 和b的值改为整数然后将read去掉这里我就不举例了。

(2)打印选择菜单,一键安装web服务

要求:

当用户输入1时,输出“start installing lamp”然后执行/server/scripts/lamp.sh,脚本内容输出“lamp is installed”后退出脚本;当用户输入2时,输出“start installing lnmp”然后执行/server/script/lnmp.sh,输出“lnmp is installed”后退出脚本;当输入3时退出当前菜单及脚本。当输入任何其他字符,给出提示“Input error”后退出脚本。要对执行的脚本进行相关条件判断,例如:脚本是否存在,是否可执行等。

打印菜单,实现web服务安装

[[email protected] ~]# cat menu.sh 
#!/bin/bash
menu(){
cat <<EOF
1.[ install lamp ]
2.[ install lnmp ]
3.[ exit ]
please input the num you want:
EOF
}
menu
read num
[ "$num" -eq "1" ]&&{
[ -x read2.sh ]||{
echo "read2.sh cat exec"
exit 1
}
echo "start install lamp"
sh ./read2.sh
echo "lamp is installed"
exit 0
}
[ "$num" -eq "2" ]&&{
[ -x ./2.sh ]||{

echo "2.sh cat exec."
exit 1
}
echo "start install lnmp"
sh ./2.sh
echo "lnmp is install"
exit 0
}
[ "$num" -eq "3" ]&&{
exit 0
}
echo "input error"

以上是关于shell脚本编程学习笔记-逻辑操作符的主要内容,如果未能解决你的问题,请参考以下文章

Linux学习笔记:bash特性之多命令执行,shell脚本

Shell脚本(学习笔记1)

shell脚本编程学习笔记shell操作数据库

Linux学习笔记-Shell教程

shell脚本编程学习笔记-shell脚本编程基础介绍

2018-4-17 Linux学习笔记