首页 > 解决方案 > 如果目录不存在,脚本会意外退出

问题描述

我正在编写一个 shell 脚本并尝试在某些位置搜索所有文件。位置有一个变量。像这样:

CONFDIRS = (~/.config/syncer /etc/syncer ~/etc/syncer)

因此,我编写了一个 for 循环来显示所有可能的文件:

search() {  #search for possible configurations
for i in ${CONFDIRS[@]}; do
        find $i -type f 
done

return 1
}

我的问题是,如果一个目录不存在,程序会退出并出现错误。如果我使用2>/dev/null,程序退出没有错误,但程序不应该退出。我怎样才能做到这一点?

标签: linuxbashfind

解决方案


CONFDIRS如果您使用“定义”它,则您的变量未设置

CONFDIRS = (...)

注意周围的空格=。只需删除它们。

引用你的变量也没有什么坏处。写"$i"而不是$i.


推荐阅读