您能列举出Shell中5种不同的算术逻辑操作吗?
- 内容介绍
- 文章标签
- 相关推荐
本文共计4752个文字,预计阅读时间需要20分钟。
相对于最初的Bourne shell,现代bash版本的最大改进之一体现在算术方面。早期的shell版本没有内置的算术功能,因此需要通过给变量赋值1或调用单独的程序来完成算术运算。例如,使用算术方法一:`$(( 表达式 ))`。
相较于最初的 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)在双括号内部是不需要的。
本文共计4752个文字,预计阅读时间需要20分钟。
相对于最初的Bourne shell,现代bash版本的最大改进之一体现在算术方面。早期的shell版本没有内置的算术功能,因此需要通过给变量赋值1或调用单独的程序来完成算术运算。例如,使用算术方法一:`$(( 表达式 ))`。
相较于最初的 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)在双括号内部是不需要的。

