如何获取“读取”命令中输入的字数?

如何获取“读取”命令中输入的字数?

对于以下命令,如何知道输入中给出了多少个单词?

$ read text

我想采用一个新变量来计算输入“文本”的单词数。举例来说,如果,

$ read text
apple

如果变量是 x,则其值为“1”

对于以下内容,

$read text
apple banana

'x' 的值为 2。

答案1

还有立即 bash 选项,使用-a以下选项read

read -a text
echo "The input '${text[@]}' contains ${#text[@]} words."

使用该-a选项,变量是使用通常的 IFS 分隔符获得的单词数组。有关更多详细信息,请参阅man bash内置命令下的 。

答案2

这是另一种方法——读取已有的变量,然后使用 POSIX 标准set实用程序以及 shell 的标准变量扩展机制,然后将生成的元素数量分配给x

read text
set -f        ## disable filename generation ("globbing")
set -- $text
x=$#

答案3

您可以用来wc -w计算单词数。 (请看一下man wc。)

$ read text
apple banana
$ echo $text
apple banana
$ echo $text|wc -w
2
$ x=$(echo $text|wc -w)
$ echo $x
2
$ echo "The input '$text' contains $x words."
The input 'apple banana' contains 2 words.

相关内容