Скриптинг Bash: мой скрипт преждевременно удаляет рабочую папку. Как исправить?

Скриптинг Bash: мой скрипт преждевременно удаляет рабочую папку. Как исправить?

Мой скрипт отлично работает для одного файла, но если я обрабатываю несколько файлов, он слишком рано удаляет мою рабочую папку, и обрабатывается только один файл. Если я не удаляю рабочую папку, скрипт работает с несколькими файлами. Вот мой скрипт:

#!/bin/bash
cd /storage/sort_tv/
mkdir workingfolder
for i in *.mp4;
  do name=`echo "$i" | cut -d'.' -f1`
  echo "$name"
sudo ffmpeg -i "$i" -map_metadata -1 -c:v copy -c:a copy -map 0:a -map 0:v "workingfolder/${i%.*}.mp4" &&
mv -f workingfolder/* /storage/sort_tv
rm -rf workingfolder
done

Как сделать так, чтобы все файлы были обработаны и перемещены до удаления рабочей папки?

решение1

Вы можете попробовать вынести команды rm из цикла. Например:

#!/bin/bash
cd /storage/sort_tv/
mkdir workingfolder
for i in *.mp4;
  do name=`echo "$i" | cut -d'.' -f1`
  echo "$name"
sudo ffmpeg -i "$i" -map_metadata -1 -c:v copy -c:a copy -map 0:a -map 0:v "workingfolder/${i%.*}.mp4" &&
done
mv -f workingfolder/* /storage/sort_tv
rm -rf workingfolder

Связанный контент