Linux 如何计算Bash变量中的字符数

Linux 如何计算Bash变量中的字符数,linux,bash,Linux,Bash,如何计算bash变量中的所有字符?例如,如果我有 "stackoverflow" 结果应该是 "13" 其中stru-var是您的字符串。使用${var}语法将计算变量中的字符数 链接 将该实用程序与打印字节计数(-c)选项一起使用: 对于echo,您必须使用不输出尾随换行符(-n)选项。否则,换行符也将被计数。您可以使用wc来计算文件中的字符数 wc-m filename.txt。 希望有帮助。一个选项是。同时使用wc和trecho stackoverflow | tr-d'\n'| w

如何计算bash变量中的所有字符?例如,如果我有

"stackoverflow"
结果应该是

"13"
其中
stru-var
是您的字符串。

使用
${var}
语法将计算变量中的字符数

链接

将该实用程序与打印字节计数(
-c
)选项一起使用:


对于
echo
,您必须使用不输出尾随换行符(
-n
)选项。否则,换行符也将被计数。

您可以使用wc来计算文件中的字符数 wc-m filename.txt。
希望有帮助。

一个选项是。同时使用wc和tr
echo stackoverflow | tr-d'\n'| wc-c
Take
function char-count(){echo-n“$1”| wc-c | awk'{print$1}}
,将其保存在.zshrc中并使用:
char count hello world”
,您从
${VAR}获得11分
在macOS UNIX zsh上不起作用。这应该是答案这在Jenkins文件上对我有效,但没有#符号
echo“字符串长度:${mystring}”
您不需要echo。如果选择
wc
do
wc-c@jacwah:这也会计算后面的换行符(因此答案是14而不是13)。使用-m表示字符,而不是-c表示字节echo会添加一个换行符,除非使用-n标志,但是并非所有echo实现都支持-n标志。使用printf可以获得更一致的结果请注意,使用@jacwah建议的(无可否认很酷的)here字符串解决方案,最终会多计算一个字符,因为bash总是在字符串的末尾添加一个换行符。事实并非如此。示例回声“ok”| wc-m->3@PhilippeDelteil,echo-nYes,谢谢。我注意到echo总是在末尾包含一个新行,您可以使用-n选项将其删除。echo可能会不一致,这取决于您的shell,printf的一致性要高得多链接可能会消亡
${#parameter}
给出替换参数的扩展值的字符长度。如果参数为
*
@
,则替换的值为位置参数的数量。如果参数是由
*
@
下标的数组名称,则替换的值是数组中的元素数。如果参数是由负数下标的索引数组名称,则该数字将被解释为相对于大于参数最大索引的一个数字,因此负索引从数组末尾开始倒数,而-1索引引用最后一个元素。Bash不会正确计算unicode字符或其他多字节字符。
${#str_var}  
jcomeau@intrepid:~$ mystring="one two three four five"
jcomeau@intrepid:~$ echo "string length: ${#mystring}"
string length: 23
$ SO="stackoverflow"
$ echo -n "$SO" | wc -c
    13