`

shell字符串比较、判断是否为数字

阅读更多

二元比较操作符,比较变量或者比较数字.注意数字与字符串的区别.

整数比较

-eq 等于,如:if [ "$a" -eq "$b" ]
-ne 不等于,如:if [ "$a" -ne "$b" ]
-gt 大于,如:if [ "$a" -gt "$b" ]
-ge 大于等于,如:if [ "$a" -ge "$b" ]
-lt 小于,如:if [ "$a" -lt "$b" ]
-le 小于等于,如:if [ "$a" -le "$b" ]
< 小于(需要双括号),如:(("$a" < "$b"))
<= 小于等于(需要双括号),如:(("$a" <= "$b"))
> 大于(需要双括号),如:((”$a” > “$b”))
>= 大于等于(需要双括号),如:((”$a” >= “$b”))

字符串比较
= 等于,如:if [ "$a" = "$b" ]
== 等于,如:if [ "$a" == "$b" ],与=等价
注意:==的功能在[[]]和[]中的行为是不同的,如下:
1 [[ $a == z* ]] # 如果$a以”z”开头(模式匹配)那么将为true


2 [[ $a == "z*" ]] # 如果$a等于z*(字符匹配),那么结果为true
3
4 [ $a == z* ] # File globbing 和word splitting将会发生
5 [ "$a" == "z*" ] # 如果$a等于z*(字符匹配),那么结果为true
一点解释,关 于File globbing是一种关于文件的速记法,比如”*.c”就是,再如~也是.
但是file globbing并不是严格的正则表达式,虽然绝大多数情况下结构比较像.
!= 不等于,如:if [ "$a" != "$b" ]
这 个操作符将在[[]]结构中使用模式匹配.
< 小于,在ASCII字母顺序下.如:
if [[ "$a" < "$b" ]]
if [ "$a" \< "$b" ]
注意:在[]结构中"<"需要被转义.
> 大于,在ASCII字母顺序下.如:
if [[ "$a" > "$b" ]]
if [ "$a" \> "$b" ]
注 意:在[]结构中”>”需要被转义.
具体参考Example 26-11来查看这个操作符应用的例子.
-z 字符串为”null”.就是长度为0.
-n 字符串不为”null”
注意:
使用-n在[]结构中测试必须要用”"把变量引起来. 使用一个未被”"的字符串来使用! -z
或者就是未用”"引用的字符串本身,放到[]结构中。虽然一般情况下可
以工作,但这是不安全的. 习惯于使用”"来测试字符串是一种好习惯.

二元比较操作符,比较变量或者比较数字.注意数字与字符串的区别.

整数比较

-eq 等于,如:if [ "$a" -eq "$b" ]
-ne 不等于,如:if [ "$a" -ne "$b" ]
-gt 大于,如:if [ "$a" -gt "$b" ]
-ge 大于等于,如:if [ "$a" -ge "$b" ]
-lt 小于,如:if [ "$a" -lt "$b" ]
-le 小于等于,如:if [ "$a" -le "$b" ]
< 小于(需要双括号),如:(("$a" < "$b"))
<= 小于等于(需要双括号),如:(("$a" <= "$b"))
> 大于(需要双括号),如:((”$a” > “$b”))
>= 大于等于(需要双括号),如:((”$a” >= “$b”))

字符串比较
= 等于,如:if [ "$a" = "$b" ]
== 等于,如:if [ "$a" == "$b" ],与=等价
注意:==的功能在[[]]和[]中的行为是不同的,如下:
1 [[ $a == z* ]] # 如果$a以”z”开头(模式匹配)那么将为true
2 [[ $a == "z*" ]] # 如果$a等于z*(字符匹配),那么结果为true
3
4 [ $a == z* ] # File globbing 和word splitting将会发生
5 [ "$a" == "z*" ] # 如果$a等于z*(字符匹配),那么结果为true
一点解释,关 于File globbing是一种关于文件的速记法,比如”*.c”就是,再如~也是.
但是file globbing并不是严格的正则表达式,虽然绝大多数情况下结构比较像.
!= 不等于,如:if [ "$a" != "$b" ]
这 个操作符将在[[]]结构中使用模式匹配.
< 小于,在ASCII字母顺序下.如:
if [[ "$a" < "$b" ]]
if [ "$a" \< "$b" ]
注意:在[]结构中"<"需要被转义.
> 大于,在ASCII字母顺序下.如:
if [[ "$a" > "$b" ]]
if [ "$a" \> "$b" ]
注 意:在[]结构中”>”需要被转义.
具体参考Example 26-11来查看这个操作符应用的例子.
-z 字符串为”null”.就是长度为0.
-n 字符串不为”null”
注意:
使用-n在[]结构中测试必须要用”"把变量引起来. 使用一个未被”"的字符串来使用! -z
或者就是未用”"引用的字符串本身,放到[]结构中。虽然一般情况下可
以工作,但这是不安全的. 习惯于使用”"来测试字符串是一种好习惯.

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    shell字符串比较判断是否为数字

    ### Shell字符串比较与数字判断详解 #### 一、概述 在Shell脚本编程中,进行字符串和数字的比较是一项常见的任务。本文将详细介绍如何在Shell脚本中进行字符串和数字的比较,包括基本的比较操作符及其使用场景,并...

    Shell编程范例之字符串操作-TinyLab原创

    对于字符串的类型,常见的判断方法包括判断字符串是否只包含数字、字母、字母数字组合、空格或特殊字符等。 在Shell编程中,可以通过多种方式来判断字符串或字符的类型。例如,使用grep命令结合正则表达式匹配数字...

    比较两个字符串是否相等的shell代码

    比较两个字符串是否相等的办法是: if [ “$test”x = “test”x ]; then 这里的关键有几点: 1 使用单个等号 2 注意到等号两边各有一个空格:这是unix shell的要求 3 注意到”$test”x最后的x,这是特意安排的,...

    Shell中判断字符串是否为数字的6种方法分享

    本篇文章主要介绍了”shell 判断字符串是否为数字”,主要涉及到shell 判断字符串是否为数字方面的内容,对于shell 判断字符串是否为数字感兴趣的同学可以参考一下。 #!/bin/bash ## 方法1 a=1234;echo $a|[ -n `...

    python中字符串比较使用is、==和cmp()总结

    经常写 shell 脚本知道,字符串判断可以用 =,!= 数字的判断是 -eq,-ne 等,但是 Python 确不是这样子的。 所以作为慢慢要转换到用 Python 写脚本,这些基本的东西必须要掌握到骨子里! 在 Python 中比较字符串...

    Shell脚本中判断变量为数字的3种方法

    在Shell脚本开发中,经常会遇到需要判断一个变量是否为数字的情况。这样的需求通常出现在输入验证、数据处理等场景中。本文将详细介绍三种在Shell脚本中判断变量是否为数字的方法,并提供具体的示例脚本。 #### ...

    linux shell编程if语句内判断参数详解

    在 Linux Shell 编程中,if 语句也可以使用算术比较运算符来判断数字的状态。这些运算符包括: * -eq:判断两个数字是否相等 * -ne:判断两个数字是否不相等 * -lt:判断一个数字是否小于另一个数字 * -le:判断一...

    linux中shell的表达式比较

    本文将详细探讨这两种Shell中的表达式比较,包括字符串比较、数字比较、文件操作以及逻辑操作符。 首先,我们来看字符串比较。在Bash中,使用`=`, `!=`来进行字符串的等价和非等价比较,例如`str1 = str2`表示`str1...

    检测输入的字符是否为0-9的数字(测试)

    在这个例子中,我们使用Java语言编写了一个名为`isNum`的方法,它接受一个字符串作为参数并返回一个布尔值,表示该字符串是否只包含0-9的数字。 方法的核心部分是for循环,它遍历字符串中的每一个字符。首先,我们...

    Linux shell编程 验证身份证号码(15/18)

    - **字符串操作**:如`${ID_NUM::6}`和`${ID_NUM:8:9}`,用于从身份证号码中提取特定字段。 - **数组和循环**:使用数组`WI_ARRAY`存储加权因子,通过循环`while [ $i -lt 17 ]; do ...`进行加权求和计算。 - **...

    linux shell中的比较符号与特殊符号介绍

    shell字符串比较、判断是否为数字 二元比较操作符,比较变量或者比较数字。注意数字与字符串的区别。 整数比较 -eq 等于,如:if [ “$a” -eq “$b” ] -ne 不等于,如:if [ “$a” -ne “$b” ] -gt 大于,如:if [ “$...

    shell脚本语言.pdf

    * Shell 变量可以存储字符串、数字、布尔值等类型的数据 * Shell 变量可以被用来存储用户输入的数据、环境变量、命令的输出结果等 Shell 特殊变量: * $0:当前 Shell 脚本的名称 * $1、$2、$3 等:命令行参数 * ...

    shell脚本之判断输入参数是否为整数值的实例

    在这里,我们用`sed`去除数字和减号,如果处理后字符串的长度不为0,说明输入不是纯整数。代码如下: ```bash flag=true read -p "请输入一个数字:" num while $flag do len=$(echo "$num" | sed 's/[0-9]//g' | ...

    Linux Shell从入门到精通学习笔记

    ### Shell字符串处理 1. **获取字符串长度**:使用`${#variable}`获取变量的长度,如`${#name}`。 2. **字符串切片**:使用`${variable:start:length}`提取子字符串,如`${name:1:3}`。 3. **替换字符串**:`echo ${...

    shell (bash) 比较运算符

    字符串比较是Shell脚本中另一个重要的功能,通过字符串比较可以实现逻辑控制和条件判断等功能。 - **`-z string`**:如果字符串 `string` 的长度为零(即为空),则返回真值。例如 `[ -z "$myvar" ]`,此命令用于...

    shell从入门到精通

    3. 表达式与运算符:Shell脚本支持条件表达式、比较符(包括整数比较符和字符串比较符)、文件测试、布尔运算符、逻辑判断符、整数运算等。 4. 流程控制:包括if语句、for语句、while语句、case语句以及select语句...

Global site tag (gtag.js) - Google Analytics