我有我创建处理从文件夹中的录像的bash脚本,它的子文件夹:猛砸while循环等待,直到任务完成
find . -type f -name '*.mkv' | while read file;
do
ffmpeg -i $file ...
done
的问题:不是while循环等待的ffmpeg来完成的,它继续遍历循环。最终的结果是,文件没有得到处理。我需要一种方法让当前的循环迭代等待,直到ffmpeg完成,然后继续下一步。或者可以选择排队这些项目的方法。
编辑:所以迭代一组文件时的解决方案是将-nostdin参数传递给ffmpeg。希望这可以帮助任何可能有类似问题的人。
也是文件 - > $文件是复制/粘贴错字。
可能会在'ffmpeg'命令末尾使用'&'在后台粘贴进程? – squiguy
你有什么应该等待ffmpeg完成。你确定你没有从ffmpeg得到一个错误(如无效的参数)吗? – Mat
循环就像你一样,应该等到每个内部命令运行,除非你在行尾加上了&。你有没有收到任何错误信息?尝试使用“echo”预处理内部命令并在其后添加睡眠1,以验证该循环本身没有问题。例如,在你给的命令行中,你使用'file'而不是'$ file' – user295691