You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shell脚本执行mkdir test重复报错,如何将精确异常写入日志文件?

解决Shell脚本中mkdir重复执行的日志记录问题

这里给你调整后的脚本,既能处理文件夹已存在的情况,还能把指定的异常信息准确写入日志文件:

#!/bin/bash

# 定义日志文件路径,你可以根据需求修改存储位置
LOG_FILE="mkdir_operation.log"

# 尝试创建test文件夹
if mkdir test; then
    # 创建成功时写入日志,带上时间戳方便追溯
    echo "$(date '+%Y-%m-%d %H:%M:%S') - 成功创建test文件夹" >> "$LOG_FILE"
else
    # 捕获创建失败的场景,写入你指定的异常信息
    ERROR_MSG="Already test folder is exist"
    echo "$(date '+%Y-%m-%d %H:%M:%S') - 错误: $ERROR_MSG" >> "$LOG_FILE"
    # 可选:如果需要在终端也显示错误提示,加上这行
    echo "错误: $ERROR_MSG" >&2
fi

关键细节说明:

  • 时间戳日志:$(date '+%Y-%m-%d %H:%M:%S')给每条日志加上精确时间,后续排查问题时能清楚知道操作发生的时机。
  • 条件判断逻辑:直接利用mkdir命令的返回值做判断——创建成功时mkdir返回0,进入成功分支;返回非0值时(比如文件夹已存在),进入异常分支。
  • 日志写入方式:用>>追加写入日志,不会覆盖之前的记录,保证操作历史的完整性。
  • 终端错误输出:>&2是把错误信息输出到标准错误流,符合Shell脚本的常规错误输出规范,方便用户在执行脚本时即时看到问题。

小优化建议:

如果后续需要创建的文件夹名称可能包含空格或特殊字符,建议把文件夹名用引号包裹,比如mkdir "$FOLDER_NAME",避免出现意外的语法错误。

内容的提问来源于stack exchange,提问作者Mano

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:39:02