폴더의 모든 m4a 파일을 반복하고 mp3로 인코딩하는 간단한 스크립트를 작성하고 있습니다. 실행 속도를 높이고 PC의 모든 코어를 활용하기 위해 다른 스레드에서 파일의 인코딩을 수행하고 싶습니다. 그래야 배경에 작업을 보내고 있습니다. 이것이 올바른 접근이라면 조언을주십시오. 어쨌든, 나는 이 없습니다. 해당 파일이나 디렉토리가 없습니다. 인코딩하려는 모든 단일 파일에 대해 파일이 있어도 오류가 발생합니다. 재미있는 점은 터미널에 똑같은 명령어를 복사하면 제대로 실행된다는 것입니다. 내가 뭘 잘못하고 있는지 알아 내게 도와 줄 수 있니?Bash 스크립트가 파일을 찾지 못함
미리 감사드립니다.
#!/bin/bash
function encode {
echo "<<<<<<<<<<<encode>>>>>>>>>>>>>>>>"
cd "$1"
find . -mindepth 1 -maxdepth 1 | while read f
do
if [ -f "${f}" ]
then
if [ ${f: -4} == ".m4a" ]
then
if [ ! -d "converted" ]
then
mkdir converted
fi
newPath="${f%m4a}mp3"
echo "ffmpeg -i \""$f"\" -ac 2 -b:a 320k -y \""$newPath"\" </dev/null >/dev/null &"
ffmpeg -i \""$f"\" -ac 2 -b:a 320k -y \""$newPath"\" </dev/null >/dev/null &
fi
elif [ -d "${f}" ]
then
echo "folder $f"
encode "$f"
fi
done
}
encode "$1"
인용문이 너무 많습니다. – chepner