shell的if判断比较

shell中的if作用毋庸置疑每个80%的shell中都会应用到if判断,那么作为一个新手我应该咋整呢,今天听了一上午课,然后就把上午的东西总结了一下写成了一个脚本,然后来进行给大家聊一聊

#!/bin/bash
##############################################################
# File Name: bbjj.sh
# Version: V1.0
# Author: ls
# Organization: http://shuai12138.blog.51cto.com/
# Created Time : 2017-03-06 14:04:05
# Description:
##############################################################
read -p "pleace input: " -t 2 -n 1 x
echo""
read -p "pleace input: " -t 2 -n 1 y
echo"">/dev/null
if [ -n $x -a -n $y ]
then
if [[ "$x$y" =~ ^[0-9]+$ ]]
then
if [ $x -gt $y ]
then
 echo "$x>$y"
elif [ $x -eq $y ]
then
 echo "$x=$y"
else
 echo "$x<$y"
fi
else
echo "you must input number"
fi
else
echo "error:you must input two"
fi

首先来进行第一行的说明:read -p "pleace input: " -t 2 -n 1 x

read -p来进行脚本交互式的输入“pleace input”就是在执行shell时的提示信息。 -t 2表示过了2秒钟你不输入,那么就会进行退出。-n 1表示我只限制你只能输入一个字符。

因为我要比较的是两个数的大小所以我用来2个read,但是为什么我要在这中间加一个echo “”呢?因为如果不加那么read就在在你输入完成$x那一行之后继续让你输入$y,这完全是为了美观。

echo"">/dev/null
为什么输出空我说了,但是为什么要定向到“黑洞”呢,这是因为如果我什么也不输入的话我的脚本会有提示信息,我不想看他,所以我给他定向到“黑洞”中。

if [ -n $x -a -n $y ]
then

fi

这是一个if判断,-n是否不为空,-a条件语句(两边都满足才行),这句话是判断只有你的两次输入都不为空,那么才会执行,否则会怎样。

if [[ "$x$y" =~ ^[0-9]+$ ]]
then

fi

这是一个数字判断,判断你输入的是否都是数字,因为如果你输入的是字母,那么系统可能是一二进制码来比较的没意义。所以我得判断一下是否为数字。(这里特别说一下我是把$x$x都统一放到一起进行比较的。要不然还会在进行判断,浪费内存)

if [ $x -gt $y ]
then
 echo "$x>$y"
elif [ $x -eq $y ]
then
 echo "$x=$y"
else
 echo "$x<$y"
fi

这就是数字的判断了。我要判断我输入的两个数字。-eq 等于 -gt 大于 -lt 小于 -ge 大于等于 -le小于等于。

时间: 2024-08-03 03:18:28

shell的if判断比较的相关文章

[Shell]if 常用判断条件

IF 判断 之前也写过简单的shell脚本,也不是转职运维,和系统相关的工作比较少,所以不怎么熟练. 最近由于系统总是出现各种乱七八糟的问题,也没有人来协助,只好自己写shell脚本了,都是些基础的脚本,但由于shell的语法和通常的高级语言有些不一样,所以还是要系统的看下常用的部分. if语句就是很重要的一个. 这种文章很多,只是拿来主义,如果有心得体会也会加上,小计下以后备查. 基本结构:  if语句块需要使用if结束 if condition then statements elif co

shell中条件判断if中的-z到-d的意思

shell中条件判断if中的-z到-d的意思 [ -a FILE ] 如果 FILE 存在则为真. [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真. [ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真. [ -d FILE ] 如果 FILE 存在且是一个目录则为真. [ -e FILE ] 如果 FILE 存在则为真. [ -f FILE ] 如果 FILE 存在且是一个普通文件则为真. [ -g FILE ] 如果 FILE 存在且已经设置了SGID则

Shell脚本中判断输入参数个数的方法投稿:junjie 字体:[增加 减小] 类型:转载

Shell脚本中判断输入参数个数的方法 投稿:junjie 字体:[增加 减小] 类型:转载 这篇文章主要介绍了Shell脚本中判断输入参数个数的方法,使用内置变量$#即可实现判断输入了多少个参数,需要的朋友可以参考下 $#代表了命令行的参数数量,可以看以下实例: 复制代码 代码如下: if [ $# != 1 ] ; then echo "USAGE: $0 TABNAME" echo " e.g.: $0 CDR_CALL_20040701" exit 1; f

Shell脚本---条件判断

面向过程     顺序执行     选择执行:if;case     循环执行:for;while;until   循环需有退出条件 选择执行(选择执行的前提,就是条件测试)    条件测试方式(测试条件)     bash命令测试          bash命令有命令执行状态返回值          $?:用于上一条执行的命令状态返回值          0:成功执行          1-255:失败          可以使用exit命令,在脚本中自定义脚本状态返回值,如果不定义,脚本的状

shell脚本真假判断(0为真,非0为假?或0为假,非0为真?)

在网络上,总有人说shell脚本的真假判断,有说0位真的,非0为假,但真的是这样吗? 做个实验,写个0的判断语句 执行结果是0 is true,那么我们想当然1是false了,做下测试: 然而执行的结果却大相径庭,0是ture,1也是ture 也就是说其他语言中(0为真,非0为假?或0为假,非0为真?)的理论均不成立. 那么linux是以什么来作为判断的呢 答案就是以命令执行后的状态,状态可用$?查看(echo $?显示0,表示执行成功,1表示执行失败) shell脚本真假判断(0为真,非0为假

shell中条件判断if中的-z到-d

shell中条件判断if中的-z到-d的意思 [ -a FILE ] 如果 FILE 存在则为真. [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真.[ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真. [ -d FILE ] 如果 FILE 存在且是一个目录则为真. [ -e FILE ] 如果 FILE 存在则为真.[ -f FILE ] 如果 FILE 存在且是一个普通文件则为真. [ -g FILE ] 如果 FILE 存在且已经设置了SGID则为真

Linux | shell脚本-比较判断和运算语句

一.简介 在我们写shell脚本的过程中,经常需要作比较判断,例如比较哪个数字大,判断文件是否存在,判断文件是否是目录,判断是否为真等操作.有时候我们还需要做运行,例如加减乘除等等,今天就来简单介绍比较表达式和运行表达式. 二.shell比较判断 1.文件状态:表达式:[ -e 文件路径 ] 有空格隔开 例如:[ -e /root ] 判断/root 是否存在(1) -e 是否存在 存在为真(2) -d 是否是目录 是目录为真(3) -f 是否是文件 是文件 为真(4) -x 是否有执行权限 有

shell编程 条件判断式----利用 case ..... esac 判断

条件判断式----利用 case ..... esac 判断 case  $变量名称 in   <==关键词为 case ,还有变量前有钱字号 "第一个变量内容")   <==每个变量内容建议用双引号括起来,关键词则为小括号 ) 程序段 ;;            <==每个类别结尾使用两个连续的分号来处理! "第二个变量内容") 程序段 ;; *)                  <==最后一个变量内容都会用 * 来代表所有其它值 不包含

shell中怎么判断输入的是否是数字

在shell中我们经常要面临一个问题就是,怎么判断我交互式的前端,使用者输入的是否是数字呢?这里小编我也就会两种方法,所以今天就在这说一说 第一种:sed格式 首先:我们先(在命令行直接输出模拟一下,如果都正确再在shell脚本中进行书写.)直接echo输出一下 echo "111asd" 第一步:思想 然后我们就要想一下我们要说用sed判断,但是sed的最主要的功能是什么?替换!!!当然是替换,既然是替换那么我们能不能直接把echo输出的数字直接替换掉,然后看这个输出还剩下什么呢?如

shell编程 条件判断式----利用 if .... then ----多重

条件判断式----利用 if .... then ----多重 在同一个数据的判断中,如果该数据需要进行多种不同的判断时,应该怎么作?举例来说,上面的 sh06.sh 脚本中,我们只要进行一次 $yn 的判断就好 (仅进行一次 if ),不想要作多次 if 的判断. 此时你就得要知道底下的语法了: # 一个条件判断,分成功进行与失败进行 (else) if [ 条件判断式 ]; then 当条件判断式成立时,可以进行的指令工作内容: else 当条件判断式不成立时,可以进行的指令工作内容: fi