有人可以向我解释一下,在korn shell中,有什么区别:
ANOTHER_VAR=${SOME_VAR}
Run Code Online (Sandbox Code Playgroud)
和
ANOTHER_VAR=$SOME_VAR
Run Code Online (Sandbox Code Playgroud)
我遇到了这些类型的声明,看不出有什么不同......
谢谢!
一个名字周围有两个大括号字符,另一个没有; 否则,在这种情况下,没有区别.
但是,如果你有:
ONE_VAR="$TWO_VAR_$THREE_VAR"
UNO_VAR="${TWO_VAR}_${THREE_VAR}"
Run Code Online (Sandbox Code Playgroud)
然后在值$ONE_VAR和$UNO_VAR将除非两个不同$TWO_VAR和$TWO_VAR_存在,$TWO_VAR_认为存储在值$TWO_VAR加上一个结尾下划线(其中$TWO_VAR可能是一个空字符串,或未定义的,只要$TWO_VAR_保持只是一个下划线).
在许多情况下,您必须使用大括号,例如:
UNE_VAR=${YET_ANOTHER_VAR:-"default setting"}
Run Code Online (Sandbox Code Playgroud)