如何计算含连字符的字符串长度?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
相关产品推荐
相关产品推荐

