在Linux Shell中,Bash是最常用的一种。Bash语言中,变量定义的时候是不需要指定类型的,因为所有变量都是字符串类型的。
但有的时候,我们需要一个变量存的是整数,这样,我们可以方便对其加加减减。这如何做到呢?
Bash语言其实是支持算术操作和比较的,这要求变量中存的每一个字符都是数字。如 VAR=123,这样的变量可以进行算术操作或比较;而VAR=abc,这样的变量就不行了。
1 Bash语言中的算术操作:
双圆括号被用于告诉Bash,括号中的内容是算数操作:
$((算术操作))
例如:
# VAR=123
# ((VAR++))
# echo $VAR
124
# ((VAR=42))
# echo $VAR
42
# for ((VAR=0; VAR<10; VAR++))
> do
> echo $((VAR + VAR + (2 * VAR)))
> done
0
4
8
12
16
20
24
28
32
36
一个错误的例子:
# VAR=abc
# ((VAR++))
# echo $VAR
1
2 Bash中的算数比较:
# VARIABLE=123
# if [ $VARIABLE -eq 123 ] ; then echo yes ; else echo no ; fi
yes
或者
# VARIABLE=123
# if [ $VARIABLE == 123 ] ; then echo yes ; else echo no ; fi
yes
还有很多算术比较的关键字,如:-ge (大于或等于),-gt(大于)... ,这些符号可以通过 man test 命令查到:
# man test
[(1) User Commands [(1)
NAME
test - check file types and compare values
SYNOPSIS
test EXPRESSION
[ EXPRESSION ]
[ OPTION
...