我无法让我的bash脚本在循环中分配变量:
#!/bin/bash
usercount=0
for word in userfile
do
let usercount=$usercount+1
done
echo $usercount
usercount的输出始终为0.这有什么问题?
答案 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
。