有人可以向我解释这个命令
str=hello
echo ${#str}
此代码计算变量 str 中的字符数。我想知道它是如何工作的符号$,#和{}意味着什么
感谢。
答案 0 :(得分:2)
' $'介绍参数扩展,所以这里"取代"具有实际值的变量:
str=hello
echo $str
> hello
使用大括号:{},您可以定义参数名称的边界。所以:"参数后跟一个字符,该字符不应被解释为其名称的一部分"。例如,这表明" asdfg"不是参数名称的一部分:
str=hello
echo ${str}asdfg
> helloasdfg
'#'只是告诉你需要该参数值的长度。
str=hello
echo ${#str}asdfg
> 5asdfg
但正如@ John1024所说Parameter Expansion
部分man bash