shell结构化命令if-then-else语句

 更新时间:2024年11月01日 10:00:16   作者:pineapple rong  
在Shell脚本编程中,if-then-else语句提供了基于条件执行不同命令的能力,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

在if-then语句中,不管命令是否成功执行,你都只有一种选择。如果命令返回一个非0退出状态码,则bash shell会继续执行脚本中的下一条命令。在这种情况下,如果能够执行另一组命令就好了。这正是if-then-else语句的作用。

if-then-else语句在语句中提供了另外一组命令:

if command
then 
       command
else
        command
fi

当if语句中的命令返回退出状态码0时,then部分中的命令会被执行,这跟普通的if-then语句一样。当if语句中的命令返回非0退出状态码时,bash shell会执行else部分中的命令。

Shell脚本首先判断文件test1是否可读,如果是,则输出 is readable !的提示信息;否则不进行任何动作。

[root@localhost 20190105]# vi test.sh
filename=test1
if [ -r $filename ]            //输出test1可读则输出信息
then
echo $filename' is readable !'
fi
[root@localhost 20190105]# sh test.sh
test1 is readable !

Shell脚本会判断number变量是否等于100,如果是,则输出 The number is equal 100 !的提示;否则输出 The number is not equal 100 !。

[root@localhost 20190105]# vi number.sh
number=200
if [ $number -eq 100 ]                 //如果number等于100则输出“The number is equal 100 !”提示
then
       echo 'The number is equal 100 !'
else                            //否则输出“The number is not equal 100 !”提示
       echo 'The number is not equal 100 !'
fi
[root@localhost 20190105]# sh number.sh
The number is not equal 100 !

Shell脚本首先判断number变量是否小于10,如果是则输出 The number < 10 !;否则,判断number变量是否大于等于10且小于20。

如果是则输出 10 =< The number < 20 !;否则,判断 number变量是否大于等于20且小于30。

如果是,则输出 20 =< The number < 30 !;否则,输出 30 <= The number !。

[root@localhost 20190105]# vi number1.sh
number=25
if [ $number -lt 10 ]              //如果number小于10
then
       echo 'The number < 10 !'
elif [ $number -ge 10 -a $number -lt 20 ] //如果number大于等于10且小于20
then
       echo '10 =< The number < 20 !'
elif [ $number -ge 20 -a $number -lt 30 ] //如果number大于等于20且小于30
then
       echo '20 =< The number < 30 !'
else                         //除上述3种情况以外的其他情况
       echo '30 <= The number !'
fi
[root@localhost 20190105]# sh number1.sh
20 =< The number < 30 !

现在你可以复制并修改测试脚本,加入else部分:

$ cp test3.sh test4.sh
$
$ nano test4.sh
$
$ cat test4.sh
#!/bin/bash
# testing the else section
#
testuser=NoSuchUser
#
if grep $testuser /etc/passwd
then
    echo "The scropt files in the home directory of $testuser are:"
    ls /home/$testuser/*.sh
    echo
else
    echo "The user $testuser does not exist on this system."
    echo
fi
echo "We are outside the if statement"
$
$ ./test4.sh
The user NoSuchUser does not exist on this system.

We are outside the if statement

这样就友好多了。跟then部分一样,else部分可以包含多条命令。fi语句说明else部分结束。 

到此这篇关于shell结构化命令if-then-else语句的文章就介绍到这了,更多相关shell if-then-else内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • shell脚本实现mysql数据库双机定时备份的方法

    shell脚本实现mysql数据库双机定时备份的方法

    最近有个需求,要求实现对某个数据库进行双机备份,每天凌晨备份一次,要求主机器只保留最近十五天的记录,我们决定用shell脚本加定时任务的方式来实现这个需求,接下来通过本文给大家介绍shell脚本实现mysql数据库双机定时备份的方法,感兴趣的朋友一起看看吧
    2022-07-07
  • shell自定义函数的6个特点总结

    shell自定义函数的6个特点总结

    这篇文章主要介绍了shell自定义函数的6个特点总结,也是使用shell自定义函数的一些注意事项总结,以及小技巧介绍,需要的朋友可以参考下
    2014-07-07
  • shell之正向解析脚本的实现方法

    shell之正向解析脚本的实现方法

    这篇文章主要介绍了shell之正向解析脚本的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • shell中打印ssh登录远端ip地址的实现

    shell中打印ssh登录远端ip地址的实现

    本文主要介绍了shell中打印ssh登录远端ip地址的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2008-12-12
  • 详谈Linux开发中常见段错误问题的原因及分析

    详谈Linux开发中常见段错误问题的原因及分析

    下面小编就为大家带来一篇详谈Linux开发中常见段错误问题的原因及分析。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • 深入探究Linux shell的实现原理

    深入探究Linux shell的实现原理

    这篇文章主要介绍了Linux shell的实现原理,文中通过代码示例和图文介绍的非常详细,对大家探究Linux shell的实现原理有一定的帮助,需要的朋友可以参考下
    2024-02-02
  • 阿里云云服务器Linux系统更新yum源Shell脚本

    阿里云云服务器Linux系统更新yum源Shell脚本

    这篇文章主要介绍了阿里云云服务器Linux系统更新yum源Shell脚本,阿里云自建了一个包含大多数系统更新的本地yum源,速度快又好用,需要的朋友可以参考下
    2014-09-09
  • linux shell awk获得外部变量(变量传值)简介

    linux shell awk获得外部变量(变量传值)简介

    这里提到awk,相信写shell的朋友都会接触到。AWK 是一种用于处理文本的编程语言工具
    2013-11-11
  • python实现Linux异步epoll代码

    python实现Linux异步epoll代码

    本文提供了python实现Linux异步epoll的代码,供大家参考使用,希望对你有帮助
    2013-11-11
  • bash脚本中if语句的使用方法

    bash脚本中if语句的使用方法

    与大多数语言一样,bash 有自己的条件形式。在使用时,要遵循以上格式;即,将 "if" 和 "then" 放在不同行,并使 "else" 和结束处必需的 "fi" 与它们水平对齐。这将使代码易于阅读和调试
    2014-05-05

最新评论