《跟老男孩学习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,如需转载请自行联系原作者



相关文章
|
2月前
|
Linux
Linux系统之expr命令的基本使用
【10月更文挑战第18天】Linux系统之expr命令的基本使用
98 4
|
2月前
|
监控 Unix Shell
shell脚本编程学习
【10月更文挑战第1天】shell脚本编程
84 12
|
2月前
|
存储 运维 监控
自动化运维:使用Shell脚本简化日常任务
【9月更文挑战第35天】在IT运维的日常工作中,重复性的任务往往消耗大量的时间。本文将介绍如何通过编写简单的Shell脚本来自动化这些日常任务,从而提升效率。我们将一起探索Shell脚本的基础语法,并通过实际案例展示如何应用这些知识来创建有用的自动化工具。无论你是新手还是有一定经验的运维人员,这篇文章都会为你提供新的视角和技巧,让你的工作更加轻松。
82 2
|
4月前
|
Java Shell Linux
【Linux入门技巧】新员工必看:用Shell脚本轻松解析应用服务日志
关于如何使用Shell脚本来解析Linux系统中的应用服务日志,提供了脚本实现的详细步骤和技巧,以及一些Shell编程的技能扩展。
70 0
【Linux入门技巧】新员工必看:用Shell脚本轻松解析应用服务日志
|
4月前
|
运维 监控 Shell
自动化运维之宝:编写高效的Shell脚本
【8月更文挑战第31天】在运维的世界里,Shell脚本是一把瑞士军刀,它让日常任务变得简单而高效。本文将通过浅显易懂的语言和实际案例,带你领略Shell脚本的魅力,并教你如何打造属于自己的自动化工具箱。无论你是初学者还是资深运维,这篇文章都将为你打开一扇窗,让你看到不一样的风景。让我们一起探索Shell脚本的世界吧!
|
4月前
|
Shell Linux 程序员
详解shell 运行原理及Linux权限
详解shell 运行原理及Linux权限
|
5月前
|
Shell Linux C语言
|
4月前
|
Kubernetes 监控 测试技术
运维.云技术学习.基于应用服务网格的灰度发布(上:理论基础篇)
运维.云技术学习.基于应用服务网格的灰度发布(上:理论基础篇)
82 0
|
5月前
|
Shell Linux
Linux Shell 脚本入门教程:开启你的自动化之旅
Shell是一种计算机程序,它充当了用户与操作系统之间的接口。在Linux系统中,Shell允许用户通过命令行界面(CLI)来控制计算机。Shell脚本则是一种使用Shell语言编写的脚本,它可以自动执行一系列的命令,帮助用户实现任务自动化,提高工作效率。
150 2
|
5月前
|
Shell Linux
Shell 脚本编程学习
Shell 脚本编程学习
43 0