用于计算变量中存在的字符的命令

时间:2014-06-28 17:53:08

标签: linux

我正在尝试计算变量中存在的字符数。我使用了下面的shell命令。但我收到错误 - 第4行找不到命令

#!/bin/bash

for i in one; do
n = $i | wc -c
echo $n
done

有人可以帮助我吗?

4 个答案:

答案 0 :(得分:1)

在bash中你可以写${#string},它将返回变量string的长度,即其中的字符数。

答案 1 :(得分:0)

这样的事情:

#!/bin/bash

for i in one; do
n=$(echo $i | wc -c)
echo $n
done

答案 2 :(得分:0)

bash中的赋值在等号前不能有空格。此外,您希望捕获所运行命令的输出并将其分配给$n,而不是将该$i分配给$n的语句。

请改用以下内容:

#!/bin/bash

for i in one; do
n=`$i | wc -c`
echo $n
done

答案 3 :(得分:0)

可以这么简单:

str="abcdef"; wc -c <<< "$str"
7

但是请注意,行尾是一个字符:

str="abcdef";  cat -A <<< "$str"
abcdef$

如果您需要将其删除:

str="abcdef"; tr -d '\n' <<< "$str" |  wc -c
6