`

bash条件测试及变量比较

 
阅读更多

<!-- gte="" mso="" 9=""><![endif]--><!-- gte="" mso="" 9=""><![endif]--><!-- gte="" mso="" 10=""><style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} table.MsoTableGrid {mso-style-name:网格型; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; border:solid windowtext 1.0pt; mso-border-alt:solid windowtext .5pt; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-border-insideh:.5pt solid windowtext; mso-border-insidev:.5pt solid windowtext; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.0pt; font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} </style><![endif]--><!--![endif]----><!--!----><!--![endif]----><!--!----><!--![endif]----><!--!---->![endif]-->!-->![endif]-->!-->![endif]-->!-->

bash条件测试及变量比较

一、条件表达式

1. 基本的if语句

if [ … ]

then

….

Fi

2. 多个if语句

if […]

then

Elif […]

Then

Fi

3. 嵌套if语句

If […]

Then

If[…]

Then

Fi

Else

fi

二、字符串和数字比较

Number

String

大于

-gt

/>

小于

-lt

/<

等于

-eq

==

大于等于

-ge

Single[] doesnot support

小于等于

-le

Single[] doesnot support

不等于

-ne

=

三、 关键点

1.ifelif后面有then

2.else if是非法的

3.单个中括号[]里面的”<”“ >”需要转义,且不支持”>=” “<=”

4.“z” 测试字符串是否为NULL

5.“n” 测试字符串是否不为NULL

四、代码

#! /bin/bash

echo "test you"

a=12

b=13

# number compare

# -eq: equal

# -ne: not equal

# -gt: great

# -ge: great and equal

# -lt: little

# -le: little and equal

if [ "$a" -ne "$b" ]

then

echo "$a is not equel to $b"

fi

if [ "$a" -eq "$b" ]

then

echo "$a is equal to $b"

else

echo "$a is not equal to $b"

fi

if [ "$a" -eq "$b" ]

then

echo "$a is equal to $b"

elif [ "$a" -lt "$b" ]

then

echo "$a is little to $b"

elif [ "$a" -gt "$b" ]

then

echo "$a is great to $b"

else

echo "Default"

fi

#########Key Point##############

#########1."then" after "if" or "elif"############

#########2."elif" is ok, not "else if"############

c=abc

d=abd

e=

#string compare

if [ "$c" == "$d" ]

then

echo "string $c is equal to $d"

elif [ "$c" /> "$d" ]

then

echo "string $c is great to $d"

elif [ "$c" /< "$d" ]

then

echo "string $c is little to $d"

elif [ "$c" != "$d" ]

then

echo "string $c is not equal to $d"

fi

if [ -z "$e" ]

then

echo " $e is NULL"

else

echo " $e is not NULL"

fi

if [ -n "$e" ]

then

echo "$e is not NULL"

else

echo "$e is NULL"

fi

###########KEy point#################

###########1.For string comparing, ">" "<"need escape symbol

###########2."z": zero is used to test whether the string is NULL

###########3."n": not zero is used to test whether the string is not NULL

f=8

if [ "$f" -gt 0 ]

then

echo "f is positive"

if [ "$f" -gt 5 ]

then

echo "f is a big positive"

else

echo "f is a small positive"

fi

else

echo "f is negative"

if [ "$f" -gt -5 ]

then

echo "f is a big negative"

else

echo "f is a small negative"

fi

fi

分享到:
评论

相关推荐

    linux-bashassert一个轻量级的bash单元测试框架

    这在测试变量赋值或命令输出时非常有用。 2. **不等于断言**:`assert_not_equal`则用于验证两个值不相等,确保预期的差异情况得到正确处理。 3. **真值断言**:`assert_true`和`assert_false`分别用来测试一个...

    详细的Bash介绍

    使用`if`语句进行条件测试,可以测试文件属性、数值比较、字符串比较等。 7. **流程控制** Bash支持`for`、`while`循环以及`case`、`if`、`else`等控制结构。 8. **函数** Bash允许定义函数,通过`function`...

    bash入门学习实例

    Bash提供了丰富的条件测试结构,如`[ expression ]`或`[[ expression ]]`。可以测试文件属性、数值比较、字符串操作等。 ### 6. 文件名扩展和通配符 - `*`: 匹配任意字符序列(不包括路径分隔符)。 - `?`: 匹配...

    高级bash shell手册

    Bash中的变量用于存储数据,包括字符串、数字和特殊变量(如$0表示脚本名,$#表示参数数量)。理解变量的声明、赋值以及如何使用环境变量和位置参数至关重要。 **3. 输入/输出重定向** Bash支持将命令的标准输出...

    高级 Bash 脚

    - Bash变量不区分类型:Bash变量可存储不同类型的数据。 - 特殊变量类型:介绍一些预定义的特殊变量。 - **引用**:讨论如何正确使用引号来避免不必要的问题。 - 引用变量:如何引用变量而不进行扩展。 - 转义...

    bash语言编程说明

    - **条件判断**:使用 `[ ]` 或 `[[ ]]` 进行条件测试。 - **循环结构**:支持 `for`、`while` 等循环结构。 - **函数**:通过 `function` 或 `()` 来定义函数。 通过以上介绍,我们可以看到 Bash 作为一种强大的...

    高级Bash脚本编程指南(Advanced Bash-Scripting Guide)中英文版本

    **ABS(Advanced Bash-Scripting Guide)指南详细介绍了Bash shell的各种特性,包括变量、控制结构、函数、输入/输出重定向、条件测试、正则表达式等核心概念。** 1. **变量**:在Bash脚本中,变量用于存储数据,...

    bash高级编程 advanced bash script

    3. **条件测试与文件操作**:掌握测试表达式,用于检查文件类型、文件存在性、数值比较等,并学习如何进行文件的创建、移动、复制和删除。 4. **数组与关联数组**:Bash从4.0版本开始支持关联数组,这允许我们存储...

    bash教程-命令语法

    - **自动化测试**:在服务端与移动端测试中,Bash脚本被用于构建自动化测试框架,提升测试效率与准确性。 - **持续集成与自动化部署**:在CI/CD流程中,Bash脚本用于执行自动化部署任务,确保软件发布的一致性和稳定...

    bash脚本基础实例

    这里,`[-f "$file"]`是条件测试,检查`$file`是否为普通文件。 ### 实例四:循环结构 Bash中的`for`循环可以遍历一系列值。下面的脚本将打印1到10的数字: ```bash #!/bin/bash for i in {1..10} do echo "$i" ...

    bash programming

    - **测试**:使用`[ ]`或`[[ ]]`来进行条件测试,支持文件测试操作符、数值比较等。 - **操作与相关主题**:包括算术运算符、布尔运算符等。 #### 五、高级Bash编程技巧 - **循环与分支**: - 循环:使用`for`, `...

    bash4.0-中文文档

    4. `test`或`[`:进行条件测试,如`[ -f file ]`检查文件是否存在。 5. `source`或`.`:执行脚本中的命令,如`source script.sh`。 **五、其他关键特性** 1. **别名**:创建快捷命令,如`alias ll='ls -l'`。 2. **...

    Linux Bash 详解

    这只是Bash基础的简单介绍,Bash还包括变量扩展、条件测试、流程控制、函数、输入/输出重定向、管道等更复杂的特性。对于想要深入学习Bash的初学者来说,理解这些基本概念是至关重要的,因为它们构成了编写高效和...

    高级Bash脚本编程指南 操作系统 - Linux - 高级Bash脚本编程指南.zip

    标签中提到了C#,虽然两者属于不同领域,但理解Bash脚本对于C#开发者同样重要,因为Bash常常用于自动化构建、部署和测试过程,特别是在Linux服务器上。 总的来说,“高级Bash脚本编程指南”将带你深入探索Bash的...

    最经典的bash资料

    3. **条件测试和逻辑运算**:理解`if`、`else`、`case`语句,以及如何使用条件测试表达式(如`-f`、`-d`等)进行文件类型检查。 4. **流程控制**:掌握`for`、`while`、`until`循环,以及`break`、`continue`语句的...

Global site tag (gtag.js) - Google Analytics