bash不会分配变量

时间:2013-12-05 16:39:28

标签: linux bash variables

我无法让我的bash脚本在循环中分配变量:

#!/bin/bash

usercount=0
for word in userfile
do
    let usercount=$usercount+1
done

echo $usercount

usercount的输出始终为0.这有什么问题?

3 个答案:

答案 0 :(得分:2)

您需要while loop才能阅读文件line by line

usercount=0
while read l; do
  let usercount=$usercount+1;
done < userfile

虽然只是算数,你可以做得很好:

usercount=$(wc -l < userfile)

答案 1 :(得分:1)

如果要计算文件中的行或单词,请使用wc

词:

wc -w < file

行:

wc -l < file

答案 2 :(得分:0)

大多数人通常使用双括号进行shell算术:

usercount=0
for word in userfile groupfile elephants
do
    ((usercount++))
done

echo $usercount

此代码段回显3,对应于这三个字。您也可以使用let;大多数人没有。但是,当我运行您的代码时,它会回显1