解析ls,不推荐

时间:2013-10-24 18:58:58

标签: linux shell scripting ls

我收到了一条关于不解析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  

当我在循环中调用一个函数时,循环只针对第一个文件,而不是针对第二个文件。

1 个答案:

答案 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