您的位置:首页 > 运维架构 > Shell

shell自定义变量中的整形运算

2014-04-08 14:34 507 查看
整型运算

  我们可以通过declare -i来定义整型变量。在上一次的学习中,使用了$(($OPTIND - 1))来进行计算$((…))是用于进行整型运算的。在$((…))中,我们并不需要对变量加上$来表示它的值,也不需要预先声明这个变量是个整型。在双引号下也能进行有效运算。下面是个例子:

#declare -i aa=13

aa=13

echo '$((aa-3))'=$((aa-3))

echo '$(($aa-3))'=$(($aa-3))

#date显示日期,date +%j表示今天是年度的第几天,$(command)表示其显示结果

echo "Only $(( (365-$(date +%j)) / 7 )) weeks until the New Year"

  前面两个echo得到的值都是10,我们也不需要预先声明aa是个整数,因为$((…))已经表明是整型的运算,会自动将字符变为整数。

运算类型和C语言一样。也支持$((x += 2))的格式,包括下面几种操作。在下面的例子中我们引用了上面aa=13。

++ :$((aa++))为13,并将aa赋值为14,注意使用$(($aa++))会报错,无法解析13++的含义,所以为了简洁并且不产生错误,不在运算式中加入$,如果是$((++aa))为14,并将aa赋值为14,这与C语言是一样的。
-- :$((aa--))为13,并将aa赋值为12,如果是$((--aa))为12,并将aa赋值为12。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: