`
feelar
  • 浏览: 5467 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

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"

混合比较

-a        逻辑与
        exp1 -a exp2    如果exp1和exp2都为true的话,这个表达式将返回true

-o        逻辑或
        exp1 -o exp2    如果exp1和exp2中有一个为true的话,那么这个表达式就返回true

这与Bash的比较操作符&&和||很相像.在[[]]中使用它.
        1 [[ condition1 && condition2 ]]
-o和-a一般都是和test命令或者是[]一起工作.
        1 if [ "$exp1" -a "$exp2" ]


注意事项:
        S.C.指出,在使用混合比较的时候即使"$var"也可能会产生问题.如果$string为空的话,
        [ -n "$string" -o "$a" = "$b" ]可能在某些版本的Bash中会有问题.为了附加一个额外
        的字符到可能的空变量中的一种安全的办法是, [ "x$string" != x -o "x$a" = "x$b" ]
       (the "x's" cancel out)(没看懂).cancel out是抵消的意思.

注意:
        使用-n在[]结构中测试必须要用""把变量引起来.使用一个未被""的字符串来使用! -z
        或者就是未用""引用的字符串本身,放到[]结构中。虽然一般情况下可
        以工作,但这是不安全的.习惯于使用""来测试字符串是一种好习惯.
分享到:
评论

相关推荐

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

    ### Shell字符串比较与数字判断详解 #### 一、概述 在Shell脚本编程中,进行...通过本文介绍的这些操作符和示例,你可以更好地理解和掌握Shell脚本中字符串和数字的比较方法,从而编写出更加强大和灵活的脚本程序。

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

    例如,可以利用Shell的参数扩展功能来提取子串,或者使用文本处理工具如sed和awk等来执行复杂的字符串替换和插入操作。字符串的长度可以通过`expr length`命令来获得。而对于字符串的存储结构,除了可以简单地作为...

    shell 操作字符串

    ### Shell操作字符串详解 在Unix/Linux环境中,Shell脚本是一种强大的工具,用于处理各种系统任务和数据操作。其中,字符串操作是Shell脚本中最常见也是最基础的功能之一。本文将深入探讨Shell如何进行字符串操作,...

    shell浅谈之六字符串和文件处理.docx

    `expr` 是一个用于执行算术、比较和字符串操作的命令。对于字符串长度的计算,可以使用 `${#string}` 或 `expr length $string`。当字符串包含空格时,需要用双引号括起来。`expr` 的索引命令如 `expr index $...

    linux shell 实现IP和数字的转换

    在Linux系统中,Shell脚本是一种强大的工具,用于自动化任务执行和系统管理。当我们需要处理与网络相关的任务,如IP地址的转换时,Shell脚本能够提供方便且灵活的解决方案。IP地址通常有两种形式:点分十进制(例如...

    shell命令的用法

    * shell 编程中它们是没有类型的,简称弱类型编程语言,在这个变量中可以保含一个数字,一个字符串,一个单词等。你并不需要声明这个变量,它会在引用这个变量时创建它。 STR="Hello World!" echo $STR  HOME="/...

    这是linux之shell练习的题目

    Shell 脚本是 Linux 和 Unix 系统中非常重要的组成部分,它允许用户通过编写一系列命令来自动化复杂的任务。执行 Shell 脚本有两种主要方式: 1. **使用 shell 程序执行脚本** - **选择合适的 shell 程序**:不同...

    Shell编程-字符截取命令-printf命令

    在Shell编程中,字符的截取与处理是非常重要的一个环节,它涉及到如何有效地操作字符串、数字以及格式化输出等关键任务。本文将详细介绍`printf`命令在Shell编程中的应用,包括其基本语法、输出类型及格式化选项等...

    shell编程和unix命令~~~

    1. **变量**:在Shell中,变量用于存储数据,可以是数字、字符串或路径等。例如,`NAME="John Doe"` 定义了一个名为NAME的变量。 2. **命令替换**:通过反引号 ` 或 `$()` 将命令的输出作为脚本的一部分。例如,`...

    Linux Shell 生成随机数和随机字符串的方法示例

    在Linux Shell脚本编程中,生成随机数和随机字符串是非常常见的需求。这篇文章主要探讨了两种在Linux Shell下生成随机数的方法以及如何生成随机字符串。首先,我们来看一下Linux Shell内置的 `$RANDOM` 变量。 `$...

    shell脚本语言.pdf

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

    Shell中字符串排序的几种方法

    在Shell脚本中,字符串排序常常与其他命令结合使用,例如`grep`(过滤)、`awk`(文本处理)和`uniq`(去重)。熟练掌握这些基础工具的组合使用,能极大地提高Shell脚本处理文本数据的能力。在实际工作中,理解并...

    linux中常用的shell命令实验

    * 使用 grep 命令在/etc/inittab 文件中查询“initdefault”字符串 * 使用 find 和 locate 命令查找/目录下所有以 main 开头的文件,并显示这些文件的内容 * 用 cp 命令将/etc 目录下的 inittab 文件和拷贝到/root ...

    Linux实验Shell命令操作

    实验中还涉及到对变量的使用,变量是存储数据的容器,可以是数字、字符串或其他类型。在Shell脚本中,可以通过`declare`或`typeset`(ksh脚本)来定义变量的属性。例如,`declare -i number`将`number`设为整数变量...

    shell命令文档 中文版

    在IT领域,Shell命令是Linux和Unix操作系统中的一个强大工具,它允许用户通过文本界面与操作系统进行交互。这本书“shell命令文档 中文版”提供了一个全面的指南,涵盖了所有基本到高级的Shell命令,这对于系统管理...

    操作系统shell基础相关命令

    shell变量是shell中的一种数据存储单元,它可以存储字符串、数字、命令输出等数据。定义变量可以使用无引号、单引号、双引号等方式。单引号' '包围变量的值时,单引号里面是什么就输出什么,即使内容中有变量和命令...

    shell从入门到精通

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

    shell编程中的字符串截取方法小结

    在Shell编程中,字符串操作是十分常见的任务,其中包括字符串截取。本文主要总结了三种不同的字符串截取方法:截取字符变量的前8位、按指定的字符串截取以及按照指定要求分割字符串。 首先,我们来看如何截取字符...

    shell编程和unix命令

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 ...

Global site tag (gtag.js) - Google Analytics