文件名中的 Bash 单引号和 ffmpeg 转义

标签 bash ffmpeg escaping

我想使用 ffmpeg 将 flac 文件列表转换为 mp3。
我已将要转换的文件列表写入文件。

这是我的脚本

#!/bin/bash

while read -r line
do
    ffmpeg -i "$line" -ab 320k "${line%.flac}.mp3"
done < flac_list

它有效,但是当文件名包含单引号时,它不起作用。
这里开始了我逃离的噩梦。
我找到了几十种组合,却没有找到如何让它发挥作用。

有人可以帮忙吗?

最佳答案

感谢@chepner,附加到 ffmpeg 的 -nostdin 标志解决了这个问题。

关于文件名中的 Bash 单引号和 ffmpeg 转义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60618449/

相关文章:

vb.net - 仅编译 ffmpeg 解码而不使用音频编解码器

google-chrome - 将 X-Window 的内容馈送到虚拟相机

bash - 如何在 sed 中转义斜杠和双引号和单引号?

bash脚本: wildcard expression is not processed as expected

bash - 创建 tar 文件并按当前日期命名

linux - BASH =~ 包含子串 : "+" or a regex character behavior

ruby-on-rails - 使用 Rails 3 将 HTML 转义为 JSON

linux - Bash/Shell 脚本 - 如何操作文本文件中的值

video - ffmpeg -bsf :v h264_mp4 toannexb not working in debien

c - 为什么我必须使用\x1b 而不是\来表示转义字符