我正在使用 接受用户的输入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
像我上面所做的那样对扩展进行双引号。