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



相关文章
|
3月前
|
Linux
Linux系统之expr命令的基本使用
【10月更文挑战第18天】Linux系统之expr命令的基本使用
122 4
|
4月前
|
Shell Linux
Linux shell编程学习笔记30:打造彩色的选项菜单
Linux shell编程学习笔记30:打造彩色的选项菜单
|
2月前
|
存储 Shell Linux
Linux 如何更改默认 Shell
Linux 如何更改默认 Shell
55 0
Linux 如何更改默认 Shell
|
2月前
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
218 3
|
3月前
|
运维 监控 网络协议
|
2月前
|
缓存 运维 监控
【运维必备知识】Linux系统平均负载与top、uptime命令详解
系统平均负载是衡量Linux服务器性能的关键指标之一。通过使用 `top`和 `uptime`命令,可以实时监控系统的负载情况,帮助运维人员及时发现并解决潜在问题。理解这些工具的输出和意义是确保系统稳定运行的基础。希望本文对Linux系统平均负载及相关命令的详细解析能帮助您更好地进行系统运维和性能优化。
90 3
|
3月前
|
Web App开发 网络协议 Linux
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
这篇文章是关于Linux命令的总结,涵盖了从基础操作到网络配置等多个方面的命令及其使用方法。
92 1
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
|
2月前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
3月前
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
104 1
|
3月前
|
监控 Unix Shell
shell脚本编程学习
【10月更文挑战第1天】shell脚本编程
92 12

热门文章

最新文章