几分钟前,我得到了一个名叫 Juliano 的用户的好心帮助,脚本工作正常,但我很困惑为什么当我按下 enter 时它会继续工作,如果我不这样做,它就会一直坐在那里直到我必须保持按回车。我以为那是 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”,以便它连接到文件的末尾。这是正确的吗:
${file%/}/done/${base%.$i.$ext
感谢您的帮助。
最佳答案
我已经在另一个问题中回答过了。是 ffmpeg 要求您覆盖输出文件。提供唯一名称(文件名中包含 $i)并将 -y 传递给 ffmpeg 即可解决问题。
关于linux - 为什么这个 bash 脚本需要我按回车键才能继续?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/646846/