提示:
!中文意思是反:与一个逻辑值相反的逻辑值。
-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)“-a”和 “-o”,逻辑运算符号用于[]中使用。
(2)“&&”和 “||”,逻辑运算符号用于[[ ]]中使用。
(3)注意括号两端,必须要有空格。
(1)[ ]中用-a,-o,!
(2) [[ ]]中用&&,||,!
(3)Test用法和[]相同。
(4)多个[]之间以及多个[[ ]]之间,或者任意混合中间逻辑操作符都是&&或||。
(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"
原文地址:http://blog.51cto.com/10642812/2084263