在bash中,要获取变量的前4个字符,您可以执行以下操作:
variable='this is a variable'
echo ${variable:0:4}
您可以引用这样的变量,而不是对长度进行硬编码:
length=4
echo ${variable:0:$length}
但是,您似乎也可以将$
放在length
之外:
echo ${variable:0:length}
您应该能够执行此操作对我来说没有意义,因为我一直认为使用/评估变量时,必须在变量前加上$
。
在其他语言中,我希望每个:
之后的文本是数字或计算结果为数字的表达式。在bash中,length
不会得出任何结果,但是$length
会得出任何结果。
这令人困惑。有人可以帮助我了解这里的情况吗?
答案 0 :(得分:0)
通常使用“ $”符号扩展变量是正确的,但是在某些情况下,bash自动扩展变量。例如,在诸如算术或间接扩展的上下文中 (有关更多详细信息,请参见Shell expansion)。 但是,您的情况是简单的算术上下文扩展。