Bou*_*rne 2 bash scripting types integer
fact如果你正在进行如下的赋值,bash shell 默认是将变量视为整数还是长整数?
fact=2
Run Code Online (Sandbox Code Playgroud)
都不是.它被视为一个字符串.除非另有声明,否则所有shell变量值都是字符串(例如declare -i fact,使用非标准shell扩展).当您使用$(())或将变量值作为参数传递给其他工具(例如expr或)时,"有多少位并且有符号"的问题才变得有意义bc.
算术扩展的POSIX Shell规范说
只需要签名的长整数运算.
bash手册只保证
评估是在固定宽度的整数中完成的,没有检查溢出,但是除以0被捕获并标记为错误.
由于C保证signed long> = 32位,因此可以安全地假设至少32位有符号的arithemetic.我希望在64位系统上有64位.
| 归档时间: |
|
| 查看次数: |
102 次 |
| 最近记录: |