我很好奇shell中let
命令的局限性;我试过搜索信息,但遗憾的是这是一个非常常见的词,它是一个内置的shell,因此许多手册页实际上并没有描述它的作用。
let
是否可能具有可能在以后导致问题的限制。我知道bc
旨在处理任意精度值,如果我知道它可用,我更喜欢使用它,但我正在使用的某些平台没有它。我倾向于将代码输入值转换为bc
而不是使用let
,但它有多受限制?例如,它是否以特定的整数宽度工作,并且该平台是否特定?如果相关,我还想知道let
是否有任何常见的非标准功能或变体,因此我可以避免使用这些功能。
基本上我在答案中希望的是let
可以使用的值的任何限制的摘要,以及它运行的平台或体系结构功能的特定功能。
答案 0 :(得分:1)
根据您定义较大值的方式,您的顾虑是有效的。
让“修复”整数aritmethics没有任何溢出检查,“固定宽度”是依赖于实现/系统。我不知道posix是否定义了最小“宽度”。如果我没记错的话,bash会使用long来计算。
关于可伸缩性的注意事项; Korn,bash和POSIX兼容的shell让旧的bourne shell没有。