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

Bash脚本拼接文件名时短横线被替换为空格的问题求助

Bash脚本变量拼接时短横线被替换为空格的解决方法

你的问题核心不是拼接语法错误,而是year、month、day这些变量本身包含多余的首尾空格,导致拼接时短横线被空格覆盖。

解决步骤:

  1. 检查变量是否含多余空格
    执行以下命令查看变量实际内容:

    echo "'$year'"
    echo "'$month'"
    echo "'$day'"
    

    如果输出类似'2024 '(末尾带空格),就说明变量存在多余空格。

  2. 清理变量中的空格
    可以用两种方法:

    • 简单通用版(依赖xargs):
      year=$(echo "$year" | xargs)
      month=$(echo "$month" | xargs)
      day=$(echo "$day" | xargs)
      
    • Bash内置高效版(需先开启扩展):
      shopt -s extglob
      year=${year##+([[:space:]])}
      year=${year%%+([[:space:]])}
      month=${month##+([[:space:]])}
      month=${month%%+([[:space:]])}
      day=${day##+([[:space:]])}
      day=${day%%+([[:space:]])}
      
  3. 规范拼接文件名
    用双引号包裹整个赋值语句,避免意外的分词问题:

    FILEDIR="${root_path}${year}/${month}/${day}/${filename_zero}_${year}-${month}-${day}-${filename_one}"
    

执行以上步骤后,再打印echo "$FILEDIR",就能得到你期望的格式:

public/2024/03/18/105610_2024-03-18-12:33:42.mp4

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 04:07:03