bash - 字数统计命令的错误答案

Rob*_*bin 2 command-line bash scripts

我正在尝试使用该wc命令获取字符串的字数。但它给了我不同的答案。它将单词数增加 1。

这是代码:

echo Enter a string:
read str
len=`echo $str | wc -c`
echo you have entered: $str
echo and the word count: $len
Run Code Online (Sandbox Code Playgroud)

输出是这样的:

Enter a string:
robin
you have entered: robin
and word count: 6
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?请帮我解决这个问题。我将不胜感激。谢谢你。

ste*_*ver 10

假设您的意思是字符数而不是字数(应该是 1),问题是echo添加了换行符。您可以使用

len=`echo -n $str | wc -c`
Run Code Online (Sandbox Code Playgroud)

-n开关抑制换行符)或 - 更好 - 只需使用 bash#可变长度运算符

len=${#str}
Run Code Online (Sandbox Code Playgroud)