`

shell 比较字符串是否相等

阅读更多

比较两个字符串是否相等的办法是:
if [ "$test"x = "test"x ]; then
这里的关键有几点:
1 使用单个等号
2 注意到等号两边各有一个空格:这是unix shell的要求
3 注意到"$test"x最后的x,这是特意安排的,因为当$test为空的时候,上面的表达式就变成了x = testx,显然是不相等的。而如果没有这个x,表达式就会报错:[: =: unary operator expected
二元比较操作符,比较变量或者比较数字.注意数字与字符串的区别. 
整数比较 
-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" &lt; "$b")) 
&lt;=       小于等于(需要双括号),如:(("$a" &lt;= "$b")) 
>       大于(需要双括号),如:(("$a" &gt; "$b")) 
&gt;=       大于等于(需要双括号),如:(("$a" &gt;= "$b")) 
小数据比较可使用AWK 
字符串比较 
=       等于,如: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" &lt; "$b" ]] 
       if [ "$a" \&lt; "$b" ] 
注意:在[]结构中"&lt;"需要被转义. 
>       大于,在ASCII字母顺序下.如: 
       if [[ "$a" &gt; "$b" ]] 
       if [ "$a" \&gt; "$b" ] 
注意:在[]结构中"&gt;"需要被转义. 
具体参考Example 26-11来查看这个操作符应用的例子. 
-z       字符串为"null".就是长度为0. 
-n       字符串不为"null" 
注意: 
使用-n在[]结构中测试必须要用""把变量引起来.使用一个未被""的字符串来使用! -z 
或者就是未用""引用的字符串本身,放到[]结构中。虽然一般情况下可 
以工作,但这是不安全的.习惯于使用""来测试字符串是一种好习惯.

分享到:
评论

相关推荐

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

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

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

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

    shell字符串的截取

    1. 使用 if 语句可以比较两个字符串是否相等,例如:if [ "$USER_NAME" = "terry" ]; then echo "I am terry" fi。 2. 使用 strCompare 函数可以比较两个字符串,例如:strCompare "$str1" "$str2"。 六、测试判空 ...

    shell中字符串截取

    本文将详细介绍几种常用的Shell中字符串截取方法及其应用场景。 ### 基础概念与应用场景 #### 1. 切割符号与位置参数 在Shell脚本中,我们可以通过位置参数来指定要截取的子串。例如,使用`${variable:start:...

    shell 字符串操作

    本文将详细介绍Shell中常用的字符串操作方法,并通过实际例子加深理解。 #### 二、字符串值的判断与读取 Shell提供了多种方式来处理字符串值,包括判断变量是否存在、获取默认值等。这些操作通常用于确保脚本在面对...

    shell中字符串、数值的比较.rar_shell中字符串、数值的比较

    1. **相等比较**: `==` 或 `=` 用于检查两个字符串是否相等。例如: ```bash str1="Hello" str2="Hello" if [ "$str1" == "$str2" ]; then echo "两者相等" else echo "两者不相等" fi ``` 2. **不等比较*...

    Shell字符串比较相等、不相等方法小结

    2. **字符串相等比较**: 使用`=`或`==`都可以检查两个字符串是否相等。它们在`[`或`[[`中表现相同: ```bash if [ "$A" = "$B" ]; then echo "[ = ]"; fi if [ "$A" == "$B" ]; then echo "[ == ]"; fi ``` ...

    Shell脚本中计算字符串长度的5种方法

    这是Shell脚本中最常用的计算字符串长度的方法之一。通过将字符串赋值给一个变量,然后使用 `${#variable}` 的形式即可获取其长度。 **示例代码**: ```bash name="Alex" echo ${#name} ``` 这种方法非常直观且易于...

    shell中的test命令—字符串比较

    shell中的test命令—字符串比较1. 字符串比较功能2. 比较字符串是否相等3. 比较字符串的大小4. 比较字符串的长度 1. 字符串比较功能 test命令的字符串比较功能: 比较 说明 str1 = str2 检查str1是否和str2...

    BASH 中的字符串处理

    - `[[ $str1 == $str2 ]]`:检查两个字符串是否相等。 - `[[ $str1 != $str2 ]]`:检查两个字符串是否不等。 - `[[ -z $str ]]`:检查字符串是否为空。 - `[[ -n $str ]]`:检查字符串是否非空。 五、字符串查找 `...

    Shell获取字符串长度的多种方法总结

    我们在日常工作中,对于求字符串操作在shell脚本中很常用,实现的方法有很多种,下面就来给大家归纳、汇总了求字符串的几种可能方法,话不多说了,来一起看看详细的介绍吧。 方法如下: 【方法一】:利用${#str}来...

    Shell脚本字符串单引号和双引号的区别浅析

    在Shell脚本编程中,字符串是至关重要的数据类型,用于存储和处理文本信息。本文将深入探讨Shell脚本中字符串的两种常见表示方式——单引号和双引号,并介绍它们之间的区别以及一些常见的字符串操作方法。 一、单...

    linux shell判断字符串为空的正确方法示例

    首先,让我们了解两种常用的判断字符串是否为空的方法: 1. `-z` 参数:这个参数用于检查字符串的长度是否为零,即是否为空。如果字符串长度为零,`-z` 操作符返回真(true),表示字符串为空。 2. `-n` 参数:与 ...

    Shell脚本计算字符串长度和判断字符串为空小技巧

    在Shell脚本编程中,处理字符串是常见的任务之一,其中包括计算字符串长度和判断字符串是否为空。下面我们将详细探讨这两种操作的几种实现方法。 首先,我们来看如何计算字符串的长度。在Shell脚本中有三种常见的...

    linux shell字符串内置的常用操作(获取长度、查找、替换)

    ### Linux Shell字符串内置操作详解 在Linux环境下进行脚本编程时,经常需要用到字符串处理功能。虽然像`awk`和`sed`这样的工具提供了强大的文本处理能力,但是它们启动时需要额外的时间开销。相比之下,shell自身...

    shell三剑客过滤文件内字符串长度输出

    当我们需要过滤文件中的内容,例如根据字符串长度进行筛选时,这三者都能发挥重要作用。下面我们将详细介绍如何使用awk、grep和sed来过滤文件内字符串长度并输出。 **awk** 是一个功能强大的文本分析工具,它能够...

Global site tag (gtag.js) - Google Analytics