gpt4 book ai didi

bash - bash shell 是否将 "fact=2"之类的赋值视为整数或长整数?

转载 作者:行者123 更新时间:2023-11-29 09:44:24 24 4
gpt4 key购买 nike

如果您进行如下赋值,bash shell 默认将变量 fact 视为整数还是长整数?

fact=2

最佳答案

都没有。它被视为一个字符串。所有 shell 变量值都是字符串,除非另有声明(例如使用 declare -i fact,一个非标准的 shell 扩展)。只有当您使用 $(()) 进行算术扩展或将变量值作为参数传递给其他工具(如 expr)时,“有多少位以及是否有符号”的问题才变得有意义bc

POSIX Shell Specification对于算术展开说

Only signed long integer arithmetic is required.

bash 手册只保证

Evaluation is done in fixed-width integers with no check for overflow, though division by 0 is trapped and flagged as an error.

由于 C 保证 signed long 为 >= 32 位,您可以安全地假设至少 32 位有符号算术。我希望 64 位系统上有 64 位。

关于bash - bash shell 是否将 "fact=2"之类的赋值视为整数或长整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16876654/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com