Unix - 스크립트 공간을 사용하여 파일 이름 주소 지정

Unix - 스크립트 공간을 사용하여 파일 이름 주소 지정

나는 파일을 가지고 Deep.flac있고A1 - Rolling In The Deep.flac

아래 스크립트를 작성했는데 Deep.flac 공백이 있는 파일 이름에서는 작동하지 않는 것 같습니다. 저는 OSX로 UNIX 시스템을 배우고 있습니다.

sox기본적으로 파일 이름을 동일하게 유지하면서 flac를 aiff로 변환하는 데 사용한 것입니다 .

내 스크립트ConvertX2Y.sh:

#!/bin/bash

# Author: Rei Yash Dean
# Copyright: Free
# Script: to convert flac files to aiff using sox; while keeping file name unchanged

for x in *.flac;
do sox $x $(basename $x .flac).aiff;
done

반환되는 오류는 다음과 같습니다.

sox FAIL formats: can't open input file `The': No such file or directory

답변1

놓다인용 부호프로그램이 단일 매개변수로 처리하기를 원하는 항목 주변:

sox "$x" "$(basename "$x" .flac).aiff"

위와 같이 큰따옴표를 사용하면 $x다음과 같이 변수 참조를 사용할 수 있습니다. 당신이 사용하는 경우아포스트로피( '...') 그 안에 사용하는 특수 문자는 작성한 대로 유지됩니다.

관련 정보