我收到了一条关于不解析ls的建议,比如本网站的描述:Don't parse ls
我在我的目录中寻找DAILY文件,这就是我所做的:
for f in *.DA*; do
[[ -e $f ]] || continue
for file in $f; do
echo "The file that you are working on: "$file
archiveContent=$( sed -n -e 1p $file )
echo $archiveContent
done
done
好的,这个效果很好,我有两个文件A.DAILY和B.DAILY,这两个档案我可以得到里面的东西,但是当我改变了一点循环时,它没有迭代我目录中扩展名为.DAILY的所有文件。
for f in *.DA*; do
[[ -e $f ]] || continue
for file in $f; do
echo "The file that you are working on: "$file
archiveContent=$( sed -n -e 1p $file )
echo $archiveContent
COMPRESS $archiveContent;
done
done
当我在循环中调用一个函数时,循环只针对第一个文件,而不是针对第二个文件。
答案 0 :(得分:1)
由于外部循环依次将f
设置为每个文件,因此您的内部循环似乎没有任何用途。
for f in *.DA*; do
[[ -e $f ]] || continue
echo "The file that you are working on: $f"
archiveContent=$( sed -n -e 1p "$f" )
echo "$archiveContent"
COMPRESS "$archiveContent"
done