检查循环中的文件是否是目录时出现问题

时间:2010-11-15 14:05:54

标签: bash directory

此代码是检查路径是否为目录的工作示例:

if [ -d "$1" ]; then
        printf "Directory exists\n"
else
        printf "Does not exists\n"
fi 

我将其更改为此尝试并测试目录中的文件是否为目录:

for file in "$1/*"; do
        if [ -d "$file" ]; then 
                printf "Directory: %s\n" $file
        else
                printf "File: %s\n" $file
        fi  
done

但它不起作用 - 目录显示为文件。为什么不工作?我怎样才能让这些代码完成我想要的呢?

干杯。

1 个答案:

答案 0 :(得分:4)

你不能引用星号。

for file in "$1"/* ; do