let命令有什么限制?

时间:2013-08-06 16:37:09

标签: shell limits let

我很好奇shell中let命令的局限性;我试过搜索信息,但遗憾的是这是一个非常常见的词,它是一个内置的shell,因此许多手册页实际上并没有描述它的作用。

然而,我已经将它用于基本算术运算,但是对于较大的值,我担心let是否可能具有可能在以后导致问题的限制。我知道bc旨在处理任意精度值,如果我知道它可用,我更喜欢使用它,但我正在使用的某些平台没有它。我倾向于将代码输入值转换为bc而不是使用let,但它有多受限制?例如,它是否以特定的整数宽度工作,并且该平台是否特定?如果相关,我还想知道let是否有任何常见的非标准功能或变体,因此我可以避免使用这些功能。

基本上我在答案中希望的是let可以使用的值的任何限制的摘要,以及它运行的平台或体系结构功能的特定功能。

1 个答案:

答案 0 :(得分:1)

根据您定义较大值的方式,您的顾虑是有效的。

让“修复”整数aritmethics没有任何溢出检查,“固定宽度”是依赖于实现/系统。我不知道posix是否定义了最小“宽度”。如果我没记错的话,bash会使用long来计算。

关于可伸缩性的注意事项; Korn,bash和POSIX兼容的shell让旧的bourne shell没有。