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

Posted 自动化运维工程师

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell编程:shell脚本的条件测试相关的知识,希望对你有一定的参考价值。

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

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脚本的条件测试的主要内容,如果未能解决你的问题,请参考以下文章

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

Shell脚本编程概述:算数运算和条件测试

Shell编程-05-Shell中条件测试与比较

Shell脚本的条件测试与比较

1.3 Shell脚本编程基础之条件测试

shell脚本编程之条件测试——test