Так как у меня есть несколько видео курсов на моем ноутбуке.
Теперь я хочу рассчитать общее время каждого курса.
Поэтому я пишу простой скрипт с bash.
Это успешно для файла / каталога без пробела. Но для dir / files с пробелом все идет не так. Я пытался настроить IFS на что-то другое, оно тоже не работает. Ну, там также есть некоторые ошибки.
#!/bin/bash
## Usage: calTime.sh dir
#set -e
getTime(){
message=$($VIDEOTOOL $OPTION $FILE | grep "Duration")
if [ $? -eq 0 ]
then
local time=$(echo $message | cut -d',' -f1 | cut -d' ' -f5)
echo -e $time "\t" $FILE
#second=$(($second + $time))
let second+=$time
fi
} 2>/tmp/error
process(){
if [ -f $FILE ]
then
getTime
elif [ -d $FILE ]
then
cd $FILE
for i in $(ls);
do
local FILE=$i
process
done
fi
}
#################
#### main #######
#################
VIDEOTOOL=/usr/bin/avidemux2_cli
OPTION="--nogui --info --load"
second=0
list=${@-./}
for FILE in $list
do
process
done
echo $second