如何抑制mkdir目录已存在警告且仍执行OR分支函数?
解决bash目录锁的错误提示抑制问题
你可以通过将mkdir的错误输出重定向到/dev/null来抑制“目录已存在”的提示,同时保留命令的退出状态,这样当目录已存在时,依然会执行warning_run_in_place函数。
修改后的代码如下:
mkdir MYLOCK 2>/dev/null || warning_run_in_place warning_run_in_place() { echo "Hey I'm already running..." exit 1; }
解释:
2>/dev/null:将命令的标准错误(文件描述符2)重定向到空设备,这样mkdir产生的错误信息就不会输出到终端。- 保留
||逻辑:当mkdir执行失败(返回非0状态码)时,依然会触发后面的warning_run_in_place函数,完全符合你的需求。
内容的提问来源于stack exchange,提问作者SpaceBoundRocket
相关产品推荐
相关产品推荐

