如果目录不存在,脚本会意外退出

时间:2019-11-21 09:02:23

标签: linux bash find

我正在编写一个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,则程序退出时不会出现错误,但程序不应退出。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

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

CONFDIRS = (...)

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

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