1

我正在尝试解决一个 bash 脚本的问题,该脚本旨在搜索 /Users/ 中的每个用户主目录并找到两个不同的目录,存储在数组“SUBDIRS”中。如果这些目录存在,我想使用递归和强制选项删除。如果它们不存在,我希望脚本继续寻找下一个目录、下一个主文件夹等。

#!/bin/sh


err=0




SUBDIRS=(
    "Library/Application Support/Spotify"
    "Library/Caches/com.spotify.client"
)


for HOMEDIR in /Users/*; do

    for SUBDIR in ${SUBDIRS}; do

        DIR="${HOMEDIR}/${SUBDIR}"

            if [[ -d "${DIR}" ]]; then
                rm -rf "${DIR}"
                echo "${HOMEDIR}/${SUBDIR} has been removed."
                APP=$(find "${HOMEDIR}" -name [sS]potify.app)
                rm -rf "${APP}"
            fi

    done

done

exit $err
4

1 回答 1

3

您需要表明它是一个要扩展的数组(并引用它)。

for SUBDIR in "${SUBDIRS[@]}"; do

find您应该在命令中引用该模式,以便find扩展它而不是 shell。

APP=$(find "${HOMEDIR}" -name '[sS]potify.app')
于 2012-06-09T16:15:07.783 回答