什么';bash中declare-i的意思是什么?它是否仅将变量限制为数字?
有人能解释一下bash中什么';bash中declare-i的意思是什么?它是否仅将变量限制为数字?,bash,integer,declare,Bash,Integer,Declare,有人能解释一下bash中declare-i的用途吗?是为了安全,所以你不需要对数字进行字符串操作吗 如果我给一个变量分配一个字符串号,我已经可以对它执行数学函数了,那么declare-I的意义是什么呢 declare-i设置名称的integer属性。它根本不影响变量的使用,只影响变量的赋值。赋值的右侧被视为一个算术表达式,因此foo=3+5、foo=“3+5”和foo=$((3+5))是相同的 在我看来,它不是很有用,因为它与显式算术表达式相比没有什么好处。您可以保存3个字符,“…”与$(…),
declare-i
的用途吗?是为了安全,所以你不需要对数字进行字符串操作吗
如果我给一个变量分配一个字符串号,我已经可以对它执行数学函数了,那么
declare-I
的意义是什么呢 declare-i
设置名称的integer
属性。它根本不影响变量的使用,只影响变量的赋值。赋值的右侧被视为一个算术表达式,因此foo=3+5
、foo=“3+5”
和foo=$((3+5))
是相同的
在我看来,它不是很有用,因为它与显式算术表达式相比没有什么好处。您可以保存3个字符,
“…”
与$(…)
,(除非您可以安全地将表达式保留为不带引号)。更糟糕的是,它模糊了赋值在实际执行时的语义。(也就是说,当您看到一个赋值时,您需要环顾四周,看看是否在名称上设置了integer
属性,然后才能知道赋值的实际作用。)declare-i
为名称设置integer
属性。它根本不影响变量的使用,只影响变量的赋值。赋值的右侧被视为一个算术表达式,因此foo=3+5
、foo=“3+5”
和foo=$((3+5))
是相同的
在我看来,它不是很有用,因为它与显式算术表达式相比没有什么好处。您可以保存3个字符,
“…”
与$(…)
,(除非您可以安全地将表达式保留为不带引号)。更糟糕的是,它模糊了赋值在实际执行时的语义。(也就是说,当您看到作业时,您需要环顾四周,查看名称上是否设置了integer
属性,然后才能知道作业的实际用途。)请看一看。谢谢RedX。再次感谢您满足注释长度要求。Bash变量不是类型的
,但是declare-i
允许您将'hint'
发送给shell,希望在变量中找到一个整数值,从而允许对该变量进行算术运算而不会引发错误(例如((foo++)
),等等,祝你愉快。谢谢你,雷德克斯。再次感谢您满足注释长度要求。Bash变量不是类型的
,但是declare-i
允许您将'hint'
发送给shell,希望在变量中找到一个整数值,从而允许对该变量进行算术运算而不会引发错误(例如((foo++)
),等