linux - linux中 `echo ${#str}`是什么意思

标签 linux shell unix

谁能给我解释一下这个命令

str=hello
echo ${#str}

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

谢谢。

最佳答案

'$'引入了参数扩展,因此这里它用实际值“替换”变量:

str=hello
echo $str
> hello

使用大括号:{},您可以定义参数名称的边界。因此:“参数后面跟着一个字符,该字符不应被解释为其名称的一部分”。例如,这表明“asdfg”不是参数名称的一部分:

str=hello
echo ${str}asdfg
> helloasdfg

“#”只是告诉您需要该参数值的长度。

str=hello
echo ${#str}asdfg
> 5asdfg

但正如@John1024所说,这一切都在man bash参数扩展部分中

关于linux - linux中 `echo ${#str}`是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43956336/

相关文章:

c++ - 为什么这个延迟循环在没有 sleep 的几次迭代后开始运行得更快?

linux - 在本地使用套接字时,数据通过哪里?

linux - 如何从 linux shell 脚本中另一个命令(管道)的标准输出读取输入?

linux - 如何用另一个文件中的内容替换一个文件中第 XX 行之后的所有行?

python - 从 ubuntu 服务器执行/运行 python 脚本

linux - 使用 shell 脚本在不退出 SSH 的情况下 Ping 多个 IP

linux - 将 GMT 时间转换为 Epoch 脚本

linux - 在 Scala 中执行需要用户交互的 OS 命令

Windows 和 Unix 系统的 C++ 套接字

linux - 重定向 ls 的标准错误