13种Shell逻辑与算术,能写出5种算你赢!
相较于最初的 Bourne shell,现代 bash 版本的最大改进之一体现在算术方面。早期的 shell 版本没有内建的算术功能,哪怕是给变量加1,也得调用单独的程序来完成。 1、算术方法一: $(( )) 只要都是整数运算,就可以在 $(( )) 的算术表达式内使用所有的标准运算符。还有一个额外的运算符:可以用** 进行幂运算,如下: COUNT=$((COUNT + 5 + MAX * 2)) 或者: MAX=$((2**8)) $(( )) 表达式内不需要使用空格,不过在运算符和操作数两边加上空格也无妨(但 ** 必须写在一起)。但是 = 两边绝不能出现空格,这和 bash 变量赋值的规则一样。如果你按以下方式写: COUNT = $((COUNT+5)) # 注意 = 号两边多了空格,可不像你想的那样! 那么,bash 会尝试运行一个名为 COUNT 的程序,其第一个参数为 =,第二个参数为 $COUNT 与 5 之和。记住,别在赋值号两边加空格! 另一个怪异之处是,通常出现在 shell 变量前表示取值的 $ 符号(如 $COUNT 或 $MAX)在双括号内部是不需要的。...
