2013-10-07 159 views
0

我有一个要求,我必须读取子目录的名称并将名称复制到文件。以下是我写的代码。Shell脚本:For循环意外输出

for file in $HOME/AutoQA/screenshots/* 
do 
if [ -d "$file" ]; 
    then 
     echo "$file" >> $HOME/AutoQA/FailedTestCases.txt 
    fi 
done 

现在,上面的代码工作几乎是完美的,但我得到的输出是一样的东西

/home/AutoQA/screenshots/1 
/home/AutoQA/screenshots/2 
...... 

但我希望它是如下

1 
2 
.... 

所以我只需要子目录的名称。在运行for循环之前,我不想做

cd /home/AutoQA/screenshots/ 

我该如何管理?谁能帮忙?

+0

或者'/'你的水珠,它会扩展到唯一的目录名,删除了'if'声明的必要性。 – chepner

回答

2

如果添加替换行

echo "$file" >> $HOME/AutoQA/FailedTestCases.txt 

basename "$file" >> $HOME/AutoQA/FailedTestCases.txt 
+0

那个技巧奏效了! – user1305398