gpt4 book ai didi

bash - bash中的ffmpeg for循环: unexpected EOF while looking for matching `}'

转载 作者:行者123 更新时间:2023-12-04 23:13:47 25 4
gpt4 key购买 nike

我有一个基本命令( 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 脚本。

    关于bash - bash中的ffmpeg for循环: unexpected EOF while looking for matching `}' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57661118/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com