几分钟前,我被一位名叫Juliano的用户亲切地帮助了,脚本工作正常,但是当我按下回车键时,为什么它继续工作让我感到困惑,如果我不这样做只是坐在那里直到我必须保持按进入。我以为这是for循环的工作?
#!/bin/bash
TIMEFORMAT=%6R
for file in /home/test/videos/* ; do
#for loop 2
for (( i = 0; i < 10; i++ )); do
#for loop 3
for ext in avi mpg wmv mov; do
base="${file##*/}"
elapsed=$({ time ffmpeg -i "$file" -ar 44100 "${file%/*}/done/${base%.*}.$ext" &>/dev/null; } 2>&1)
echo "$file $i $ext took $elapsed seconds"
done
done
done
我也可以换掉循环2和3吗?
全部谢谢
我怎样才能在for循环中使用变量“i”,以便它在文件末尾汇编。这是对的:
$ {文件%/ } /完成/ $ {基地%。}的 $ I 即可。$分机
感谢您的帮助。
答案 0 :(得分:3)
我怀疑ffmpeg
程序正在等待进程结束时的按键。您可以向其发送按键,例如:
echo -e \\n | time ffmpeg ...
可能会将新行“回显”到ffmpeg程序的标准输入中。
是的,你可以交换循环#2和#3。
答案 1 :(得分:3)
我已经回答了另一个问题。 ffmpeg要求你覆盖输出文件。给出唯一的名称(在文件名中使用$ i)并将-y传递给ffmpeg可以解决问题。