<!-- 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.if和elif后面有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
|
分享到:
相关推荐
这在测试变量赋值或命令输出时非常有用。 2. **不等于断言**:`assert_not_equal`则用于验证两个值不相等,确保预期的差异情况得到正确处理。 3. **真值断言**:`assert_true`和`assert_false`分别用来测试一个...
使用`if`语句进行条件测试,可以测试文件属性、数值比较、字符串比较等。 7. **流程控制** Bash支持`for`、`while`循环以及`case`、`if`、`else`等控制结构。 8. **函数** Bash允许定义函数,通过`function`...
Bash提供了丰富的条件测试结构,如`[ expression ]`或`[[ expression ]]`。可以测试文件属性、数值比较、字符串操作等。 ### 6. 文件名扩展和通配符 - `*`: 匹配任意字符序列(不包括路径分隔符)。 - `?`: 匹配...
Bash中的变量用于存储数据,包括字符串、数字和特殊变量(如$0表示脚本名,$#表示参数数量)。理解变量的声明、赋值以及如何使用环境变量和位置参数至关重要。 **3. 输入/输出重定向** Bash支持将命令的标准输出...
- Bash变量不区分类型:Bash变量可存储不同类型的数据。 - 特殊变量类型:介绍一些预定义的特殊变量。 - **引用**:讨论如何正确使用引号来避免不必要的问题。 - 引用变量:如何引用变量而不进行扩展。 - 转义...
- **条件判断**:使用 `[ ]` 或 `[[ ]]` 进行条件测试。 - **循环结构**:支持 `for`、`while` 等循环结构。 - **函数**:通过 `function` 或 `()` 来定义函数。 通过以上介绍,我们可以看到 Bash 作为一种强大的...
**ABS(Advanced Bash-Scripting Guide)指南详细介绍了Bash shell的各种特性,包括变量、控制结构、函数、输入/输出重定向、条件测试、正则表达式等核心概念。** 1. **变量**:在Bash脚本中,变量用于存储数据,...
3. **条件测试与文件操作**:掌握测试表达式,用于检查文件类型、文件存在性、数值比较等,并学习如何进行文件的创建、移动、复制和删除。 4. **数组与关联数组**:Bash从4.0版本开始支持关联数组,这允许我们存储...
- **自动化测试**:在服务端与移动端测试中,Bash脚本被用于构建自动化测试框架,提升测试效率与准确性。 - **持续集成与自动化部署**:在CI/CD流程中,Bash脚本用于执行自动化部署任务,确保软件发布的一致性和稳定...
这里,`[-f "$file"]`是条件测试,检查`$file`是否为普通文件。 ### 实例四:循环结构 Bash中的`for`循环可以遍历一系列值。下面的脚本将打印1到10的数字: ```bash #!/bin/bash for i in {1..10} do echo "$i" ...
- **测试**:使用`[ ]`或`[[ ]]`来进行条件测试,支持文件测试操作符、数值比较等。 - **操作与相关主题**:包括算术运算符、布尔运算符等。 #### 五、高级Bash编程技巧 - **循环与分支**: - 循环:使用`for`, `...
4. `test`或`[`:进行条件测试,如`[ -f file ]`检查文件是否存在。 5. `source`或`.`:执行脚本中的命令,如`source script.sh`。 **五、其他关键特性** 1. **别名**:创建快捷命令,如`alias ll='ls -l'`。 2. **...
这只是Bash基础的简单介绍,Bash还包括变量扩展、条件测试、流程控制、函数、输入/输出重定向、管道等更复杂的特性。对于想要深入学习Bash的初学者来说,理解这些基本概念是至关重要的,因为它们构成了编写高效和...
标签中提到了C#,虽然两者属于不同领域,但理解Bash脚本对于C#开发者同样重要,因为Bash常常用于自动化构建、部署和测试过程,特别是在Linux服务器上。 总的来说,“高级Bash脚本编程指南”将带你深入探索Bash的...
3. **条件测试和逻辑运算**:理解`if`、`else`、`case`语句,以及如何使用条件测试表达式(如`-f`、`-d`等)进行文件类型检查。 4. **流程控制**:掌握`for`、`while`、`until`循环,以及`break`、`continue`语句的...