Har*_*ikk 12 math shell arithmetic-expressions
当我第一次学习shell脚本时,我看到很多let用于基本算术的例子,但后来我发现有些环境不是let内置的,而是支持使用expr(尽管速度明显较慢).
但是,例如,在许多shell中也可以使用双括号来执行算术运算$((54 + 102)).
由于我正在编写一个可移植性的脚本,这提供了一个可能性的雷区; 目前我正在使用两个不同的包装函数(一个用于let和一个用于expr),并使用快速测试来决定在我的其余脚本中使用哪个.
无论如何,我想知道的是,是否有人可以澄清这三个算术命令(以及我错过的任何其他算法命令)的兼容性.我希望双括号形式可能足够普通,我可以放弃兼容性检查,但搜索是一件很难的事情,所以我决定来这里并要求确定.
只是要注意我只对常规算术感兴趣,我想我已经涵盖了我可能需要使用的几个大整数.
$(( ... )) 在POSIX标准中定义,它可能是您需要的便携式.