경로 처리 방법($1)

경로 처리 방법($1)

나는 가지고있다:

/home/wms/mp3/

그리고

/home/wms/tmp/

~/tmp에서 내 스크립트는 다음과 같습니다.

#!/bin/bash
br=64
for a in "$1"*.mp3 ;
do ffmpeg -i "$a" -ar 44100 -ab $br "$br""_tmp/${a%.*} ["$br"].mp3" ; done

나는 다음을 원한다:

/home/wms/tmp/./script.sh /home/wms/mp3/

1달러로 무엇을 하나요?

"@1"은 /home/wms/mp3/first1과 일치하기 때문입니다.

${a%.*} 확장 파일 자르기

하지만 경로가 잘못되었습니다. 이 스크립트는 ~/mp3 내부에서 실행하는 경우에만 실행됩니다.

답변1

basename $a를 사용하여 파일 이름을 추출한 다음 임시 디렉터리를 사용하여 경로를 만듭니다.

#!/bin/bash
br=64
mkdir -p _tmp
for a in "$1"*.mp3 ; do
aux=$(basename ${a})
ffmpeg -i "$a" -ar 44100 -ab $br "$br""_tmp/${aux%.*}_["$br"].mp3" 
done

관련 정보