linux - 如果目录不存在,脚本会意外退出
问题描述
我正在编写一个 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
,程序退出没有错误,但程序不应该退出。我怎样才能做到这一点?
解决方案
CONFDIRS
如果您使用“定义”它,则您的变量未设置
CONFDIRS = (...)
注意周围的空格=
。只需删除它们。
引用你的变量也没有什么坏处。写"$i"
而不是$i
.
推荐阅读
- javascript - 将函数变量传递给第二个函数会更改变量值
- python - 在 keras 中使用 ANN 制作了奇数分类器,没有得到好的结果?
- http2 - 序列化的头块如何划分?
- plantuml - 矩形后回车
- ruby-on-rails - Rails 发电机没有为引擎加载
- laravel - laravel php artisan serve 命令有效,但 localhost url 在 ubuntu 18.10 中不起作用
- drupal - 提交按钮未启用
- python - 比较 pandas Df 中的每一行值元素并根据比较输入一个字符串
- r - 了解“优化”功能
- python - Pycharm:Java网关进程在发送其端口号之前退出