码迷,mamicode.com
首页 > 系统相关 > 详细

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

时间:2018-03-08 17:24:34      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:linux   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服务安装

[root@localhost ~]# 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   shell   

原文地址:http://blog.51cto.com/10642812/2084263

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!