循环浏览 bash 中的目录并跳过特定目录名称

循环浏览 bash 中的目录并跳过特定目录名称

我正在尝试循环遍历给定文件夹中的目录,并且我想跳过特定的目录名称。我已经编写了这个 bash 脚本来执行此操作,但这给了我错误。请告诉我哪里出错了:

for f in *
do
    if [ -d "$f" ]; then
        if [ -d "TEST"];then
        echo "skip TEST directory"
        continue
        fi
    echo "$f"
    fi
done    

我想跳过 TEST 目录。

答案1

你的 if 语句不正确。尝试将第二个 if 语句更改为以下内容。

for f in *
do
    if [ -d "$f" ]; then # Modify to [[ ! -L "$f" && -d "$f" ]] to check only for directories and not symlinks since -d will also get symlinks
        if [ "$f" = "TEST" ]; then
            echo "Skipping $f dir"
            continue
        fi
        # Code ...
    fi
done

相关内容