在 shell 中计算 read 的输入总是返回 1

在 shell 中计算 read 的输入总是返回 1

我正在使用 接受用户的输入read。我尝试像往常一样使用 计算结果wc -c,并将其存储到变量中,但结果始终返回 1。

下面是

#!/bin/bash 

echo -n "Enter your plaintext.> "
read text

count=$(echo $text | wc -w)
echo  $count

不知何故,当变量不存储为变量时,直接回显将是正确的结果。

#!/bin/bash 

echo -n "Enter your plaintext.> "
read text

echo $text | wc -w

答案1

你的代码有效。

read text
count=$( echo "$text" | wc -w )

count如果我输入文本,这将设置为 2 hello world

在评论中,您谈到了计算字符数。

count=$( echo "$text" | wc -c )

或者

count=${#text}

会为你做的。但是,该wc解决方案还将计算最后的换行符,为您提供一个比参数扩展方法大一个字符的值。该wc方法还将压缩字符串中的空格,除非您$text像我上面所做的那样对扩展进行双引号。

相关内容