双括号命令允许你在比较过程中使用高级数学表达式。test命令只能在比较中使用简单的算术操作。双括号命令提供了更多的数学符号,这些符号对于用过其他编程语言的程序员而言并不陌生。双括号命令的格式如下:
(( expression ))
expression可以是任意的数学赋值或比较表达式。
可以在if语句中用双括号命令,也可以在脚本中的普通命令里使用来赋值。
$ cat test23.sh
#!/bin/bash
# using double parenthesis
#
val1=10
#
if (( $val1 ** 2 > 90 ))
then
(( val2 = $val1 ** 2 ))
echo "The square of $val1 is $val2"
fi
$
$ ./test23.sh
The square of 10 is 100
$
注意,不需要将双括号中表达式里的大于号转义。这是双括号命令提供的另一个高级特性。