【学习Linux】结构化命令——if
来源:互联网 发布:复杂网络模型 编辑:程序博客网 时间:2024/05/17 21:48
if...then语句
(这里先补充一点,每个命令执行都会返回一个整数,执行成功返回1,执行失败根据失败的原因返回不同的数值)
语句形式 :
①if 命令
then 命令
fi
这是最简单的if语句。
②if 命令
then
命令
else
命令
fi
这个形式加上了else。then后面或者else后面可以写的命令是多条不是一条。
③
②使用双方括号,这里可以替代前面比较字符串的方法。
if 命令1
then
命令
elif命令2
then
命令
fi
这个是else if 的写法
if语句就有这3种形式。但是前面的判断条件里只有命令,也就是说命令执行成功就执行什么,命令执行失败执行其他的。这样做很不方便。
test命令
这个命令使其他的东西也能成为判断条件。
写法:
if test condition
then 命令
fi
test命令的另一种写法
if [ condition ]
then 命令
fi
注意condition前后的空格。
①比较数值(我们经常需要比较2个整数的大小
)
示例:这个是测试2个数是否相等,只需要改变-eq为别的就好了。注意空格问题。
<strong>#!/bin/bash</strong>
<strong>#20160814</strong>
<strong>var1=1</strong>
<strong>var2=2</strong>
<strong>if [ $var1 -eq $var2 ]then echo sucesselse echo failfi</strong>
②比较字符串(使用大于或者小于符号时记得加上转义符)
<strong>示例:只有一个等于号,不是2个。 -n是判断字符串的长度是否不等于0,-z是判断是否等于0</strong>
<strong>#!/bin/bash</strong>
<strong>#20160814</strong>
<strong>var1=aaaa</strong>
<strong>var2=bbbb</strong>
<strong>if [ $var1 = $var2 ]then echo sucesselse echo failfi</strong>
③比较文件
高级的test命令
高级的test命令可以进行复杂一点的数学计算。
①使用双圆括号,在双圆括号里面可以使用下面这些运算符号,并且不用转义,还有,使用双圆括号之后,括号里的判断根其他语言就一样了。判断是否相等还是要用2个等于号。这里应该是可以替代前面比较整数的方法的。<strong>#!/bin/bash</strong>
<strong>#20160814</strong>
<strong>var1=1</strong>
<strong>var2=2</strong>
<strong>if (( $var1 < $var2 ))then</strong>
<strong> (( var1=$var1 ** 2 ))</strong>
<strong> echo \$var1=$var1</strong>
<strong>else echo failfi</strong>
前增量后增量什么的不知道怎么测试。其他的应该正常的。
并且在双方括号里面可以使用模式匹配的方法。
#!/bin/bash
#20160814
var1=aaaa
if [[ $var1 == a* ]]then
echo \$var1=$var1
else echo failfi
点击这里这里是有关模式匹配的详细介绍
0 0
- 【学习Linux】结构化命令——if
- linux结构化命令:if-then
- 【shell编程学习】结构化if命令
- Linux-Shell脚本编程-学习-5-Shell编程-使用结构化命令-if-then-else-elif
- 【学习Linux】结构化命令——case
- 【学习Linux】结构化命令——for
- 【学习Linux】结构化命令——while和until
- Linux学习笔记--结构化命令
- Linux学习笔记-结构化命令2
- 批处理命令学习笔记——If命令
- Linux Shell脚本应用——使用if判断结构
- Linux学习:结构+命令
- linux分支结构if
- 学习笔记(三)——ls命令、Linux目录结构、cd命令、PATH、快捷键
- linux if命令
- shell结构化命令if-then-elif-fi
- shell脚本编程<二>:if-then,case结构化命令
- 第3章 结构化命令------------(if语句)
- iOS图像处理(9)使用CoreImage滤镜
- php利用yield写一个简单中间件
- [leetcode] 199. Binary Tree Right Side View
- eclipse快捷键神器使用积累
- [leetcode] 173. Binary Search Tree Iterator
- 【学习Linux】结构化命令——if
- [leetcode] 59. Spiral Matrix II
- java基础-注解Annotation原理和用法
- [leetcode] 240. Search a 2D Matrix II
- 基于NX的研发产品设计管理平台实现(九)--BOM的设计与管理4
- Timer定时器因修改系统时间导致挂起的原因
- HTML5全局属性
- #139 Subarray Sum Closest
- HTML5新增标签