《跟老男孩学习Linux运维:Shell编程实战》之比较两个整数的大小

简介:

《跟老男孩学习Linux运维:Shell编程实战》之比较两个整数的大小


说明:使用if条件从句比较两个整数的大小。使用传参方法时,需要对传参个数及传入的参数是否是整数进行判断。

  1. 思路

    第一,先判断输入的是两个数,对输入个数进行判断;

    第二,再判断输入的两个数是整数;

    第三,最后比较两个数的大小。

  2. 脚本1如下


    #!/bin/bash

    #write by wtf

    #date:2017-7-5

    a=$1

    b=$2

    if [ $# -ne 2 ];then

            echo "Please enter two Numbers!"

            exit 1

    fi

    expr $a + 1 &>/dev/null

    RETVAL1=$?

    expr $b + ! &>/dev/null

    RETVAL2=$?

    if [ $RETVAL1 -ne 0 -a $RETVAL2 -ne 0  ];then

            echo "Please enter two int!"

            exit 2

    fi

    if [ $a -lt $b ];then

            echo "$a<$b"

            exit 0

    fi

    if [ $a -gt $b ];then

            echo "$a>$b"

    exit 0

    fi

    if [ $a -eq $b ];then

            echo "$a=$b"

            exit 0

    fi

  3. 脚本1说明


    wKiom1lckA3QwBlBAABj-mnna7A078.png

    说明:上面脚本包括四个部分,分别是:

    (1)设置两个传参;

    (2)判断输入的是否是两个参数;

    (3)判断输入的两个参数是否是整数;

    (4)比较两个整数的大小。

  4. 脚本2如下


    #!/bin/bash

    #write by wtf

    #date:2017-7-5

    #version:v1.2

    a=$1

    b=$2

    expr $a + 1 >/dev/null 2>/dev/null

    RETVAL1=$?

    expr $b + 1 >/dev/null 2>/dev/null

    RETVAL2=$?

    if [ $# -ne 2 ];then

            echo "please enter two number!"

            exit 1

    elif [ $RETVAL1 -ne 0 ]||[ $RETVAL2 -ne 0 ];then

            echo "please enter two int!"

            exit 2

    fi

    if [ $a -lt $b ];then

            echo "$a<$b"

            exit 0

    fi

    if [ $a -gt $b ];then

            echo "$a>$b"

            exit 0

    fi

    if [ $a -eq $b ];then

            echo "$a=$b"

            exit 0

    fi

  5. 脚本2说明

    wKiom1lcmTfxwztXAABkEq2I4Io438.png

    说明:上面脚本可以分为三个部分:

    (1)第一部分设置传参

    (2)做两个判断:判断传参是否时两个,判断传参是否时整数;

    (3)比较两个传参的大小。

  6. 脚本3如下【老男孩老师的脚本】


    #!/bin/bash

    #write by wtf

    #date:2017-7-5

    #version:v1.3

    read -p "please enter two num:" a b

    expr $a + 1 &>/dev/null

    RETVAL1=$?

    expr $b + 1 &>/dev/null

    RETVAL2=$?

    if [ -z "$a" ]||[ -z "$b" ]

            then

            echo "please enter two num again!"

            exit 1

    elif test $RETVAL1 -ne 0 -o $RETVAL2 -ne 0

            then

            echo "please enter two int!"

            exit 2

    elif [ $a -lt $b ]

            then

            echo "$a<$b"

    elif [ $a -eq $b ]

            then

            echo "$a=$b"

    else

            echo"$a>$b"

    fi

    exit 0

  7. 脚本3说明

    wKioL1lcqkzRbHIYAAcOy5eehUg460.png




     本文转自品鉴初心51CTO博客,原文链接:http://blog.51cto.com/wutengfei/1944798,如需转载请自行联系原作者




相关文章
|
5月前
|
NoSQL 关系型数据库 MySQL
Linux学习记录---(1、基本命令)
该博客文章提供了Linux系统中基本命令的使用记录,包括文件和目录操作、Redis服务管理、MySQL数据库操作以及Tomcat服务器的启动和检查。
Linux学习记录---(1、基本命令)
|
2月前
|
Linux 编译器 开发工具
【Linux快速入门(三)】Linux与ROS学习之编译基础(Cmake编译)
【Linux快速入门(三)】Linux与ROS学习之编译基础(Cmake编译)
130 2
|
2月前
|
存储 安全 Linux
|
2月前
|
Linux Shell 数据安全/隐私保护
|
3月前
|
Linux 编译器 C语言
【Linux快速入门(一)】Linux与ROS学习之编译基础(gcc编译)
【Linux快速入门(一)】Linux与ROS学习之编译基础(gcc编译)
|
3月前
|
网络协议 Linux
linux学习之套接字通信
Linux中的套接字通信是网络编程的核心,允许多个进程通过网络交换数据。套接字提供跨网络通信能力,涵盖本地进程间通信及远程通信。主要基于TCP和UDP两种模型:TCP面向连接且可靠,适用于文件传输等高可靠性需求;UDP无连接且速度快,适合实时音视频通信等低延迟场景。通过创建、绑定、监听及读写操作,可以在Linux环境下轻松实现这两种通信模型。
55 1
|
3月前
|
存储 运维 监控
自动化运维:使用Shell脚本简化日常任务
【9月更文挑战第35天】在IT运维的日常工作中,重复性的任务往往消耗大量的时间。本文将介绍如何通过编写简单的Shell脚本来自动化这些日常任务,从而提升效率。我们将一起探索Shell脚本的基础语法,并通过实际案例展示如何应用这些知识来创建有用的自动化工具。无论你是新手还是有一定经验的运维人员,这篇文章都会为你提供新的视角和技巧,让你的工作更加轻松。
100 2
|
3月前
|
Linux 开发工具
【Linux快速入门(二)】Linux与ROS学习之编译基础(make编译)
【Linux快速入门(二)】Linux与ROS学习之编译基础(make编译)
139 0
|
5月前
|
NoSQL Ubuntu Linux
Linux内核学习
Linux内核学习
120 3
|
5月前
|
Java Shell Linux
【Linux入门技巧】新员工必看:用Shell脚本轻松解析应用服务日志
关于如何使用Shell脚本来解析Linux系统中的应用服务日志,提供了脚本实现的详细步骤和技巧,以及一些Shell编程的技能扩展。
81 0
【Linux入门技巧】新员工必看:用Shell脚本轻松解析应用服务日志