《跟老男孩学习Linux运维:Shell编程实战》之expr和RETVAL

简介:

《跟老男孩学习Linux运维:Shell编程实战》之expr和RETVAL



[root@oldboy C06]# cat 7_5_1.sh

#!/bin/sh
a=$1                                ##将脚本命令行的第一个参数赋值给变量a
b=$2                                ##将脚本命令行的第二个参数赋值给变量b
#no1 判断传参的个数为2个,如果输入不是两个数,则退出脚本并输出数字1.
if [ $ # -ne 2 ] ;then
     echo  "USAGE:$0 NUM1 NUM2"
     exit  1
fi
#no2 判断输入的是否是整数
expr  $a + 10 &> /dev/null            ##判断变量a是否是整数
RETVAL1=$?                          ##获取expr命令的返回值并赋值给RETVAL1
expr  $b + 10 &> /dev/null            ##判断变量b是否是整数
RETVAL2=$?                          ##获取expr命令的返回值并赋值给RETVAL2
if [  $RETVAL1 - eq  0 -a $RETVAL2 - eq  0 ] ;then
     echo  "Please input two " num " again."
     exit  2
fi
#no3 比较两个参数大小
if [ $a -lt $b ] ;then
     echo  "$a < $b"
     exit  0
fi
#no4
if [ $a - eq  $b ] ;then
     echo  "$a = $b"
     exit  0
fi
#no5
if [ $a -gt $b ] ;then
     echo  "$a > $b"

fi


说明:


  1. expr判断输入的数是否为整数,举例如下:


    [root@nginx ~]# a=1.1

    [root@nginx ~]# expr $a + 1 &>/dev/null

    [root@nginx ~]# RETVAL=$?

    [root@nginx ~]# echo $RETVAL

    2

    上述例子说明,当a不是整数时,我们可以看到它的返回值时2,而不是0!

    [root@nginx ~]# a=1

    [root@nginx ~]# expr $a + 1 &>/dev/null

    [root@nginx ~]# RETVAL=$?

    [root@nginx ~]# echo $RETVAL

    0

  2. expr $a + 10 &>/dev/null           

    RETVAL1=$? 

    可以写成:

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

    RETVAL=$?

    wKiom1lbQ5vRLP7lAAArxKayEls442.png

  3. /dev/null 相当于windows系统的垃圾箱





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



相关文章
|
18天前
|
Web App开发 Java Linux
Linux之Shell基本命令篇
Linux之Shell基本命令篇
Linux之Shell基本命令篇
|
1月前
|
安全 Shell Linux
【Shell 命令集合 系统管理 】Linux 锁定终端 vlock命令 使用指南
【Shell 命令集合 系统管理 】Linux 锁定终端 vlock命令 使用指南
36 1
|
1月前
|
Shell Linux C语言
【Shell 命令集合 系统管理 】Linux 显示系统的平均负载情况 tload命令 使用指南
【Shell 命令集合 系统管理 】Linux 显示系统的平均负载情况 tload命令 使用指南
40 1
|
1月前
|
监控 Shell Linux
【Shell 命令集合 系统管理 】Linux 显示当前登录到系统的用户信息 who命令 使用指南
【Shell 命令集合 系统管理 】Linux 显示当前登录到系统的用户信息 who命令 使用指南
43 1
|
1月前
|
监控 Shell Linux
【Shell 命令集合 系统管理 】Linux 显示目前登入系统的用户信息 w命令 使用指南
【Shell 命令集合 系统管理 】Linux 显示目前登入系统的用户信息 w命令 使用指南
45 2
|
1月前
|
存储 Unix Shell
【Shell 命令集合 系统管理 】⭐⭐Linux 显示系统的基本信息 uname命令 使用指南
【Shell 命令集合 系统管理 】⭐⭐Linux 显示系统的基本信息 uname命令 使用指南
35 1
|
1月前
|
存储 Shell Linux
【Shell 命令集合 系统管理 】Linux 修改用户的属性和配置 usermod命令 使用指南
【Shell 命令集合 系统管理 】Linux 修改用户的属性和配置 usermod命令 使用指南
35 1
|
1月前
|
搜索推荐 Shell Linux
【Shell 命令集合 系统管理 】Linux 管理用户配置文件 userconf命令 使用指南
【Shell 命令集合 系统管理 】Linux 管理用户配置文件 userconf命令 使用指南
38 2
|
1月前
|
Shell Linux 数据库
【Shell 命令集合 系统管理 】Linux 创建新用户的命令 useradd命令 使用指南
【Shell 命令集合 系统管理 】Linux 创建新用户的命令 useradd命令 使用指南
48 1
|
16天前
|
存储 Shell Linux
【攻防世界】unseping (反序列化与Linux bash shell)
【攻防世界】unseping (反序列化与Linux bash shell)