猿问

我们什么时候需要shell变量的大括号?

我们什么时候需要shell变量的大括号?

在shell脚本中,我们何时使用{}当展开变量的时候?

例如,我看到了以下情况:

var=10        # Declare variableecho "${var}" # One use of the variableecho "$var"   # Another use of the variable

是有很大的不同,还是只是风格?一个比另一个更好吗?


炎炎设计
浏览 1590回答 3
3回答

不负相思意

在这个特殊的例子中,它没有什么区别。但是,{}在……里面${}如果要展开变量,则此方法非常有用。foo在弦中"${foo}bar"自"$foobar"将展开由foobar.在下列情况下也无条件地需要花括号:展开数组元素,如${array[42]}使用参数展开操作,如${filename%.*}(移除分机)将位置参数扩展到9之后:"$8 $9 ${10} ${11}"在任何地方都这样做,而不是仅仅在可能不明确的情况下,能,会,可以被认为是好的编程实践。这既是为了一致性,也是为了避免像$foo_$bar.jpg,从视觉上看,下划线是否成为变量名的一部分并不明显。

jeck猫

变量被声明并赋值$没有{}..你必须用var=10分配。为了读取变量(换句话说,“展开”变量),必须使用$.$var      # use the variable${var}    # same as above${var}bar # expand var, and append "bar" too$varbar    # same as ${varbar}, i.e expand a variable called varbar, if it exists.这有时让我感到困惑-在其他语言中,我们以同样的方式引用变量,不管它是在赋值的左边还是右边。但是shell脚本是不同的,$var=10不会像你想的那样做!

慕斯王

你用{}为了分组。取消引用数组元素需要大括号。例子:dir=(*)           # store the contents of the directory into an arrayecho "${dir[0]}"  # get the first entry.echo "$dir[0]"     # incorrect
随时随地看视频慕课网APP

相关分类

Python
我要回答