gpt4 book ai didi

bash - 为什么子串变量扩展可以引用没有美元符号的变量?

转载 作者:行者123 更新时间:2023-12-04 17:31:27 26 4
gpt4 key购买 nike

在 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 会。

这令人困惑。有人可以帮助我了解这里发生了什么吗?

最佳答案

通常使用“$”符号扩展变量是正确的,但在某些情况下 bash 会自动扩展变量。例如在算术或间接扩展等上下文中 (有关更多详细信息,请参阅 Shell expansion)。 但是,您的情况是一个简单的算术上下文扩展。

关于bash - 为什么子串变量扩展可以引用没有美元符号的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59259319/

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