bash shell脚本入门之shell基本运算
原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。
expr 是一款表达式计算工具,使用它能完成表达式的求值操作。
[root@WIND script]# cat 05.sh
#!/bin/bash
val=`expr 2 + 20`
echo "两数之和为 : $val"
echo $(expr 2 + 30)
[root@WIND script]# bash 05.sh
两数之和为 : 22
32
两点注意:
表达式和运算符之间要有空格,例如 2+20 是不对的,必须写成 2 + 20,这与我们熟悉的大多数编程语言不一样。
完整的表达式要被 包含,注意这个字符不是常用的单引号,在 键盘做上角Esc 键下边。
[root@WIND script]# cat 07.sh
#!/bin/bash
a=10
b=20
val=`expr ${a} + ${b}`
echo "a + b: ${val}"
val=`expr ${a} - ${b}`
echo "a - b: ${val}"
val=`expr ${a} \* ${b}`
echo "a * b: ${val}"
val=`expr ${a} / ${b}`
echo "a / b: ${val}"
val=`expr ${b} / ${a}`
echo "b / a: ${val}"
val=`expr ${b} % ${a}`
echo "b % a : ${val}"
val=`expr ${a} % ${b}`
echo "a % b: ${val}"
if [ ${a} == ${b} ];then
echo "a equals b"
fi
if [ ${a} != ${b} ];then
echo "a not equal b"
fi
[root@WIND script]#
[root@WIND script]# bash 07.sh
a + b: 30
a - b: -10
a * b: 200
a / b: 0
b / a: 2
b % a : 0
a % b: 10
a not equal b
乘号(*)前边必须加反斜杠()才能实现乘法运算;
关系运算符
EQ 就是 EQUAL等于
[root@WIND script]# cat 08.sh
#!/bin/bash
a=10
b=20
if [ ${a} -eq ${b} ];then
echo " a equals b"
else
echo " a not equal b"
fi
[root@WIND script]#
[root@WIND script]# bash 08.sh
a not equal b
NE 就是 NOT EQUAL不等于
[root@WIND script]# cat 08.sh
#!/bin/bash
a=10
b=20
if [ ${a} -ne ${b} ];then
echo " a not equals b"
else
echo " a equals b"
fi
[root@WIND script]# bash 08.sh
a not equals b
其他的自己实践一下就行
GT 就是 GREATER THAN大于
LT 就是 LESS THAN小于
GE 就是 GREATER THAN OR EQUAL 大于等于
LE 就是 LESS THAN OR EQUAL 小于等于
布尔运算符
逻辑运算符
字符串运算符
文件测试运算符