问题:脚本将接收任意数量的文件名作为参数。脚本应该检查提供的每个参数是文件还是目录。如果目录报告。如果是文件,则应报告文件名加上其中存在的行数。
下面是我的代码,
#!/bin/sh
for i in $*; do
if [ -f $i ] ; then
c=`wc -l $i`
echo $i is a file and has $c line\(s\).
elif [ -d $i ] ; then
echo $i is a directory.
fi
done
输出:
shree@ubuntu:~/unixstuff/shells$ ./s317i file1 file2 s317h s317idir
file1 is a file and has 1 file1 line(s).
file2 is a file and has 2 file2 line(s).
s317h is a file and has 14 s317h line(s).
我的问题:每次迭代时,变量 c 的值是 1 file1、2 file2、14 s317h。而我希望它为 1,2 和 14。为什么它包含前一个值而不是后一个值?我哪里错了?
注意:s317i 是我的文件名,file1 file2 s317h 和 s317idir 是命令行参数。
好心劝告。