2013-12-17 4 views
3

내 음악 라이브러리를 mp3 형식으로 변환하고이를 다른 디렉토리로 복사하는 bash 스크립트가 있습니다. 디렉토리 및 파일에 부분적으로 (,) &과 같은 특수 문자가 포함되어 있으므로 스크립트가 실패합니다.Bash : 특수 문자로 파일 처리

는 I가 설정 :

IFS=$(echo -en "\n\b") 

인 코드 커맨드의 코드는 다음과 같다 :

ffmpeg -i ${f} -ab 192k ${SDCARD}/$(basename ${t})/$(basename ${d})/$(basename ${f%.*}.mp3) 

파일 구조는 다음 $의 SDCARD/$의 t/$의 D/$의 F 인 : /Volumes/MUSIC/Jessie Ware/Devotion (US Version)/09 만약 당신이 움직이지 않을 거라면 .mp3

어떤 제안이 있니?

감사 루카스을 참조 할 때, 당신의 변수를 인용 정확히 발생한 문제 유형을 방지하기 위해 일반적으로 좋습니다

+6

사용 따옴표. ' "$ var"' – Kevin

+0

무엇이 문제입니까? – michael501

+0

'$ {f}'도 따옴표가 필요합니다 ('{}'이 필요하지 않습니다). 그리고 동일한 토큰에 변수를 한 쌍으로 유지할 수 있습니다 (예 : ''$ SDCard/$ (basename "$ t")/... "' – Kevin

답변

1

. 자세한 내용은 http://tldp.org/LDP/abs/html/quotingvar.html을 참조하십시오.

예 :

[email protected]:~$ FOO="one two three" 
[email protected]:~$ for i in $FOO; do echo The value of i is\: $i;done 
The value of i is: one 
The value of i is: two 
The value of i is: three 

[email protected]:~$ for i in "$FOO"; do echo The value of i is\: $i;done 
The value of i is: one two three 

(. 케빈 다시 돌아 오는 자신의 의견에 대한 답변을하게되면, 당신은 그의이 같은 올바른 표시해야합니다, 그래서 그는 먼저 답변에 대한 신용을 얻는다)