【发布时间】:2013-08-16 14:23:27
【问题描述】:
这里有2段代码,$1中的值是包含3行文本的文件名。
现在,我有一个问题。在第一段代码中,我无法从循环中得到“正确”的值,但在第二段代码中,我可以得到正确的结果。我不知道为什么。
如何让第一段代码得到正确的结果?
#!/bin/bash
count=0
cat "$1" | while read line
do
count=$[ $count + 1 ]
done
echo "$count line(s) in all."
#-----------------------------------------
count2=0
for var in a b c
do
count2=$[ $count2 + 1 ]
done
echo "$count2 line(s) in all."
【问题讨论】:
-
有什么理由不能只使用
count=$(wc -l $1)? -
我是初学者。我只是想练习使用 bash。 @保罗埃文斯