使用Ubuntu (3)-shell

1 Shell运算符

Shell提供大量的基本运算操作,在脚本中非常有用。Shell提供的算术表达式求值,执行运算展开式,此时使用得出的结果替换表达式。以下面的格式提供运算表达式:
$(( expression ))

可以使用 echo 在命令行显示运算展开式的结果,了解其工作情况。例如
                    
$ echo $((10+40))
50
$ echo $((5*(3+3)))
30

还可以将展开式分配给变量:

$ myvar = 10
$ echo $myvar
10
$ echo $(($myvar-2))
8
$ myvar = $(($myvar+5))
$ echo $myvar
15
$ result = $(($myvar-10))
$ echo $result
5

2 Shell浮点数计算

在shell脚本中,无法对浮点数进行比较,如:

max=0.1
min=0.01
if [ "$max" -gt "$min" ]
then
echo "YES"
else
echo "NO"
fi

这样的比较,运行后得到错误:
line 4: [: 0.1: integer expression expected

因为bc和awk都支持浮点数,可以使用bc进行处理:

max=0.1
min=0.01
if [ `echo "$max > $min" | bc` -eq 1 ]
then
    echo "YES"
else
    echo "NO"
fi

也可以写成if [ $(echo "$max < $min"|bc) -eq 1 ]

猜你喜欢

转载自ronry.iteye.com/blog/792603
今日推荐