搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 自动化运维工程师 > Shell编程:shell脚本的条件测试

Shell编程:shell脚本的条件测试

自动化运维工程师 2018-04-22

工作随笔--奋斗的人生最幸福

Smile and laugh more.They are natural anti-depressants.

当前浏览器不支持播放音乐或语音,请在微信或其他浏览器中播放 Shell编程:shell脚本的条件测试 Shell编程:shell脚本的条件测试



test  <测试表达式>与[ <测试表达式> ]等价

如果flie文件存在,则输出true,否则(||)输出false。

Shell编程:shell脚本的条件测试

-f #文件存在且为普通文件则表达式成立

-z #如果测试字符串的长度为0,则表达式成立

&&、||、>、<等操作符可以应用于[[ ]]中,但不能应用于[]中,在[]中一般使用-a、-o、-gt(用于整数)、-lt(用于整数)。

例:使用read传入数字等于1,就打印1。如果等于2,就打印2。如果不等于1也不等于2,就提示错误。

Shell编程:shell脚本的条件测试

Shell编程:shell脚本的条件测试

例:使用read读入方式比较两个整数的大小。

Shell编程:shell脚本的条件测试

Shell编程:shell脚本的条件测试

执行结果:

Shell编程:shell脚本的条件测试

例:打印选择菜单,按照选择项一键安装不同的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;

}

执行结果:

Shell编程:shell脚本的条件测试

-END-




推荐阅读  点击蓝色字体即可跳转

◆  


版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《Shell编程:shell脚本的条件测试》的版权归原作者「自动化运维工程师」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注自动化运维工程师微信公众号

自动化运维工程师微信公众号:guihua_blog

自动化运维工程师

手机扫描上方二维码即可关注自动化运维工程师微信公众号

自动化运维工程师最新文章

精品公众号随机推荐

上一篇 >>

Gulp4.0入门和实战