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

ffprobe调用含空格方括号的路径变量时报错是什么原因?

报错原因

该问题是Bash默认的单词拆分和通配符展开机制导致的:

  • 你的路径中包含空格,未加引号直接使用$loc时,Bash会将空格识别为参数分隔符,把完整路径拆分为/e/[Content、Creation]/audio_section_working/1.mp3两个独立参数传给ffprobe,ffprobe会认为你传入了两个输入文件,因此抛出该错误
  • 路径中的方括号属于Bash通配符字符,未加引号时还会被Bash尝试匹配当前目录下符合规则的文件名,会进一步干扰路径解析
解决方法

引用路径变量时用双引号包裹,阻止Bash对变量内容做特殊解析即可:

echo $(ffprobe -v error -show_entries format=duration \
-of default=noprint_wrappers=1:nokey=1 "$loc")
补充建议

日常编写Shell脚本时,所有涉及文件路径、文件名,或可能包含特殊字符的变量,引用时都建议默认加双引号包裹,可避免绝大多数类似的参数解析错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 02:45:01