我正在尝试解决bash脚本的问题,该脚本旨在搜索/ Users /中的每个用户主目录,并找到两个不同的目录,存储在数组“SUBDIRS”中。如果这些目录存在,我想删除recursive和force选项。如果它们不存在,我希望脚本继续查找下一个目录,下一个主文件夹等。
#!/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
答案 0 :(得分:3)
你需要表明它是一个要扩展的数组(并引用它)。
for SUBDIR in "${SUBDIRS[@]}"; do
您应该在find
命令中引用该模式,以便find
将其展开而不是shell。
APP=$(find "${HOMEDIR}" -name '[sS]potify.app')