linux

时间:2017-05-13 18:01:54

标签: linux shell unix

有人可以向我解释这个命令

str=hello
echo ${#str}

此代码计算变量 str 中的字符数。我想知道它是如何工作的符号$,#和{}意味着什么

感谢。

1 个答案:

答案 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