Shell编程:shell脚本的条件测试
Posted 自动化运维工程师
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell编程:shell脚本的条件测试相关的知识,希望对你有一定的参考价值。
工作随笔--奋斗的人生最幸福
Smile and laugh more.They are natural anti-depressants.
test <测试表达式>与[ <测试表达式> ]等价
如果flie文件存在,则输出true,否则(||)输出false。
-f #文件存在且为普通文件则表达式成立
-z #如果测试字符串的长度为0,则表达式成立
&&、||、>、<等操作符可以应用于[[ ]]中,但不能应用于[]中,在[]中一般使用-a、-o、-gt(用于整数)、-lt(用于整数)。
例:使用read传入数字等于1,就打印1。如果等于2,就打印2。如果不等于1也不等于2,就提示错误。
例:使用read读入方式比较两个整数的大小。
执行结果:
例:打印选择菜单,按照选择项一键安装不同的WEB服务。
代码:
#!/bin/sh
cat <<EOF
1.[install lamp]
2.[install lnmp]
3.[exit]
please input the num:
EOF
sh_path=/server/scripts
[ ! -d ${sh_path} ] && {
mkdir -p ${sh_path}
}
read num
expr ${num} + 1 &>/dev/null;
[ $? -ne 0 ] && {
echo "please input the num is {1|2|3}!";
exit 0;
}
[[ ! ${num} = [1-3] ]] && {
echo "please input the num is {1|2|3}!";
exit 1;
}
[ ${num} -eq 1 ] && {
echo "start installing lamp:";
[ -x ${sh_path}/lamp.sh ] || {
echo "${sh_path}/lamp.sh does not exist or can't be exe.";
exit 2;
}
${sh_path}/lamp.sh;
exit $?;
}
[ ${num} -eq 2 ] && {
echo "start installing lnmp:";
[ -x ${sh_path}/lnmp.sh ] || {
echo "${sh_path}/lnmp.sh does't exist or can't be exec.";
exit 3;
}
${sh_path}/lnmp.sh;
exit $?;
}
[ ${num} -eq 3 ] && {
echo "exit"
exit 4;
}
执行结果:
-END-
推荐阅读 点击☟蓝色字体即可跳转 |
◆
◆
◆
◆
以上是关于Shell编程:shell脚本的条件测试的主要内容,如果未能解决你的问题,请参考以下文章