You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何计算含连字符的字符串长度?Bash命令行问题求助

计算Bash中含连字符的字符串长度

你之前用l=$(#s)是语法错误,Bash里获取字符串长度的正确写法是${#变量名},针对你的场景,正确命令如下:

s=-----abra-kadabra---
l=${#s}
echo $l

执行后会输出字符串的总长度(包括所有连字符)。

另外还有两种可选方法:

  • 使用expr命令:
    l=$(expr length "$s")
    
  • 使用wc命令(需加-n避免echo输出的换行符干扰计数):
    l=$(echo -n "$s" | wc -c)
    

错误原因说明

你写的$(#s)是错误语法,$()用于执行子命令并捕获输出,但#s不是合法命令。而${#s}是Bash内置的获取变量值长度的语法,不管字符串里有没有连字符、空格等特殊字符,只要变量赋值正确,都能准确计算长度。

内容的提问来源于stack exchange,提问作者user37342

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 19:54:50