有人可以向我解释一下,在korn shell中,有什么区别:
ANOTHER_VAR=${SOME_VAR}
和
ANOTHER_VAR=$SOME_VAR
我遇到了这些类型的声明,看不出有什么不同......
谢谢!
答案 0 :(得分:5)
一个名字周围有两个大括号字符,另一个没有;否则,在这种情况下,没有区别。
但是,如果你有:
ONE_VAR="$TWO_VAR_$THREE_VAR"
UNO_VAR="${TWO_VAR}_${THREE_VAR}"
然后$ONE_VAR
和$UNO_VAR
中的值会有所不同,除非$TWO_VAR
和$TWO_VAR_
都存在且$TWO_VAR_
包含$TWO_VAR
中存储的值1}}加上一个尾随下划线(其中$TWO_VAR
可以是空字符串,或者未定义,只要$TWO_VAR_
只包含下划线)。
感谢William Pursell pointing out以前版本中的一个小错误。
在许多情况下,您必须使用大括号,例如:
UNE_VAR=${YET_ANOTHER_VAR:-"default setting"}