bash for循环中的ffmpeg:寻找匹配的`}'时出现意外的EOF

维克树

我有一个基本命令 ( ffmpeg -i input_file out.srt) 可以将.mkv视频文件转换为.srt字幕文件。问题是我必须为每个.mkv文件手动运行命令所以我尝试在 Bash 中实现一个 for 循环,但我不断收到错误消息。

 #!/bin/bash
 # ffmpeg -i input_file out.srt


 for i in *.mkv ; do
      ffmpeg -i "$i" "$(basename "${i/.mkv)")".str
      sleep 30
 done

我得到的两个错误是:

./subcon.sh: line 6: unexpected EOF while looking for matching `}'
./subcon.sh: line 9: syntax error: unexpected end of file

我不熟悉 Bash 以了解发生了什么。有谁知道我可以在哪里查找内容或如何解决这个特定问题?

问题:

  • 括号不匹配。更改{(
  • 字幕扩展名不正确。更改strsrt
  • basename语法不正确。更改"$(basename "${i/.mkv)")".str"$(basename "$i" .mkv)".srt或者使用 Bash 参数扩展而不是basename.

新脚本:

#!/bin/bash
# ffmpeg -i input_file out.srt

for i in *.mkv ; do
     ffmpeg -i "$i" "$(basename "$i" .mkv)".srt
     sleep 30
done

你可以消除basename

#!/bin/bash
# ffmpeg -i input_file out.srt

for i in *.mkv ; do
     ffmpeg -i "$i" "${i%.*}.srt"
     sleep 30
done

我推荐shellcheck.net来检查你的 Bash 脚本。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Bash/Osascript 错误:寻找匹配的“)”时出现意外 EOF

bash:寻找匹配项时出现意外的EOF

寻找匹配的“”“时出现意外的EOF-bash脚本

bash.profile在查找匹配的“”“时出现意外的EOF

bash错误-在制表符补全中寻找匹配的“”时出现意外的EOF

寻找匹配的“”时出现意外 EOF - bash 简单脚本

bash脚本sed命令在寻找匹配的“”“时出现意外的EOF

Bash选项卡补全:'-bash:寻找匹配`)时出现意外的EOF -bash:语法错误:文件意外结束

寻找匹配的“”'时出现意外的EOF

寻找匹配的`''时出现意外的EOF

寻找匹配``'时出现意外的EOF

寻找匹配的“”“时出现意外的EOF

使用sed时寻找匹配的`''时出现意外的EOF

使用execve()时寻找匹配的`''时出现意外的EOF

寻找匹配的“”问题时出现意外的EOF

为Cron工作寻找匹配的“”“时出现意外的EOF

EOL 错误(寻找匹配的‘)’时出现意外的 EOF)

寻找匹配的`''时出现意外的EOF(Xcode 11.1)

错误:在寻找匹配的 `'' 时出现意外的 EOF

寻找匹配的“”“ shell脚本时出现意外的EOF

寻找匹配的“”时出现意外的 EOF ubuntu 20.04

寻找匹配的“”时出现意外的 EOF 语法错误:文件意外结束

为什么会出现这些错误-寻找匹配的')'时出现意外的EOF

/bin/sh: -c: line 0: 寻找匹配的‘"’时出现意外的 EOF

Ansible 错误:/bin/sh: -c: line 0: 寻找匹配时出现意外 EOF”

在寻找匹配项时发生BASH意外的EOF

是什么导致我的“寻找...时出现意外的EOF错误”错误?

bash脚本中出现意外的EOF,为什么?

循环减去时出现意外结果