-2

我收到了不要解析 ls 的建议,就像本网站中描述的那样:不要解析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  

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

4

1 回答 1

2

由于外部循环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  
于 2013-10-25T01:06:57.993 回答