Linux--Shell条件判断及算术运算

  上篇博客http://blog.xiaoxiaomo.com/2016/03/05/Linux-Shell编程入门/,讲解了变量及使用。本篇博客主要讲解Shell条件判断和算术运算基本思路和Java差不多,变动的就是一些语法格式

bash条件测试

shell有一个内部命令test经常用于对判断语句进行测试一种或几种状态的条件是否成立。0表示成功,1-255表示匹配失败。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

#####格式:
1、test EXPR
2、[ EXPR ]:注意中括号和表达式之间的空格
3、[[ EXPR ]]

#####整型测试:
-gt:大于:例如[ $A -gt $B ]或者test,测试$A是否大于$B
-lt:小于
-ge:大于等于
-le:小于等于
-eq:等于
-ne:不等于

#####字符串测试:
=:等于,例如判断变量是否为空 [ "$str" = "" ] 或者[ -z $str ]
!=:不等于

#####逻辑关系
逻辑与: &&
逻辑或: ||
  • 实例代码

  

  

算术运算符

算术运算符指的是可以在程序中实现加、减、乘、除等数学运算的运算符。Shell中常用的数学运算符如下所示。

+:对两个变量做加法。
-:对两个变量做减法。
*:对两个变量做乘法。
/:对两个变量做除法。
**:对两个变量做幂运算。
%:取模运算,第一个变量除以第二个变量求余数。
+=:加等于,在自身基础上加第二个变量。
-=:减等于,在第一个变量的基础上减去第二个变量。
*=:乘等于,在第一个变量的基础上乘以第二个变量。
/=:除等于,在第一个变量的基础上除以第二个变量。
%=:取模赋值,第一个变量对第二个变量取模运算,再赋值给第一个变量。

  • eg :

  

  • 输出结果
    1
    2
    3
    4
    5
    [momo1@momo1 ~]$ ./operation.sh 
    6
    36
    300
    0

if分支

  • if分支语法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

##### 单分支
if 测试条件;then
选择分支
fi

##### 双分支
if 测试条件
then
选择分支1
else
选择分支2
fi

##### 多分支
if 条件1; then
分支1
elif 条件2; then
分支2
elif 条件3; then
分支3
...
else
分支n
fi
  • eg :

  

  

case分支

有多个测试条件时,case语句会使得语法结构更清晰,更容易看出分块管理。

1
2
3
4
5
6
7
8
9
10
11
12
13
格式: 
case 变量引用 in
PATTERN1)
分支1
;;
PATTERN2)
分支2
;;
...
*)
分支n
;;
esac

PATTERN :类同于文件名通配机制,但支持使用|表示或者
a|b:a或者b
*:匹配任意长度的任意字符
?:匹配任意单个字符
[a-z]:指定范围内的任意单个字符

  • eg :

  

1
2
3
4
5
6
[root@momo1 shell]# ./caseShell.sh stop
The server stop......
[root@momo1 shell]# ./caseShell.sh start
The server starting......
[root@momo1 shell]# ./caseShell.sh status
The server off

算术运算

1
2
3
4
5
6
7
8
let varName=算术表达式

varName=$[算术表达式]

varName=$((算术表达式))

varName=`expr $num1 + $num2`
使用这种格式要注意两个数字和+号中间要有空格。

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器