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

Shell脚本创建含日期的日志文件时出现ambiguous redirect报错求助

你遇到的ambiguous redirect报错核心原因是包含空格的文件路径没有用双引号包裹,shell会把空格分隔的内容识别为多个独立参数,导致重定向目标不明确。

修复后的代码

currentDate=$(date)
logFileName="$file_name $currentDate.log"
# 先确保日志存储目录存在,避免目录不存在报错
mkdir -p "logFolder/$repo_name"
# 包含变量的文件路径全部用双引号包裹,避免分词问题
echo "$USER 操作了 $file_name,操作时间:$(date)" >> "logFolder/$repo_name/$logFileName"
read -p "请输入操作注释:" comment
# 注释变量也用双引号包裹,避免特殊字符导致写入异常
echo "$comment" >> "logFolder/$repo_name/$logFileName"

可选优化建议

  • 如果不需要日志文件名带空格,可以将日期格式替换为无空格格式,兼容性更好,示例:
    # 生成类似20211030_191311的时间格式,最终文件名形如pizza.html_20211030_191311.log
    currentDate=$(date +"%Y%m%d_%H%M%S")
    logFileName="${file_name}_${currentDate}.log"
    
  • 所有包含空格、特殊字符的shell变量,使用时都建议用双引号包裹,避免shell自动分词导致的各类异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 06:57:01