У меня есть этот сценарий Shell, и мне удалось его испортить, и я надеялся, что меня можно исправить и поставить на правильный путь, и, надеюсь, добавить несколько вещей, которые я недостаточно компетентен, чтобы делать сам. Я поместил то, что я хочу сделать, как комментарии в сценарии Shell ниже.
#!/bin/bash
#Get all files from dir "videos" and send to processLine function one at a time
cd /home/test/videos/
for file in `dir -d *` ; do
processLine -f $file
done
processLine(){
# I was hoping to have a further for loop that would loop 4 times and change the $ext
#variable to avi, mpg, wmv and mov
#For loop, execute a command on each file
for i in 1 2 3 4 5 6 7 8 9 10
do
START=$(date +%s.%N)
echo "$line"
#The saved file in done dir should have filename as $file + START.
eval "ffmpeg -i $file -ar 44100 /home/test/videos/done/$fileSTART.$ext" > /dev/null 2>&1
END=$(date +%s.%N)
DIFF=$(echo "$END - $START" | bc)
echo "$line, $START, $END, $DIFF" >> file.csv 2>&1
echo "It took $DIFF seconds"
echo $line
done
}
Основная идея сценария заключается в следующем: получить все файлы из каталога dir и запустить для них команду ffmpeg и посмотреть, сколько времени это займет. Я пытаюсь собрать статистику
Спасибо за любую помощь
Обновление
Использование сценария Джулиано и замена для циклов 2 и 3. Мне удалось получить следующий вывод:
.
.
.
/home/test/videos/done 8 mov took 0.012 seconds
/home/test/videos/done 9 mov took 0.012 seconds
/home/test/videos/video1236104961.flv 0 avi took 0.446 seconds
Там останавливается.