【发布时间】:2021-11-03 22:16:08
【问题描述】:
我有一个简短的 bash 脚本,旨在将充满 .mp3 文件的文件夹转换为 .m4r 铃声。我无法弄清楚为什么它会抛出以下错误:
“错误:ExtAudioFileCreateWithURL 失败 ('fmt?')”
#!/bin/bash
cd "/path/to/directory/containing/mp3s"
for i in *.mp3; do
baseFilename=$( basename ${i} .mp3 )
afconvert -f m4af ${i} -o "/path/to/new/location/${baseFilename}.m4r"
done
exit 0
【问题讨论】:
-
如果文件名包含可能引发错误的 shell 特殊的空格和字符,因为您的变量没有被引用。使用
"$i"而不是${i},大括号是可选的,但不能替代引号。 -
通过shellcheck.net 运行脚本并修复它指出的问题。如果这不能解决问题,请尝试直接运行命令(而不是通过脚本),看看它是否以这种方式工作。如果没有,请排除故障(我不知道
afconvert,所以我无能为力)。如果直接运行命令时它确实有效,请将set -x放在脚本的开头以获取执行跟踪,并查看它的不同之处。
标签: bash macos mp3 ringtone afconvert