2014-07-22 2 views
1

로컬 파일을 가져 와서 다른 임시 위치에서 압축하려고합니다.쉘 스크립트에서 뭐가 잘못 되었나요?

/bin/bash test.sh 

/home/tft/Downloads/ie.js 
ie.js 
/home/tft/Downloads/Temp 
.zipjstft/Downloads/Temp 
     zip warning: name not matched: /home/tft/Downloads/ie.js 

)zip . -i /home/tft/Downloads/ie.js -r -j /home/tft/Downloads/Temp 

답변

2

스크립트가 DOS 형식으로되어 있습니다 : 다음 출력 아래 얻기 오류를

path="/home/tft/Downloads/ie.js" 
temp="/home/tft/Downloads/Temp" 
name=$(basename "$path") 
echo "$path" 
echo "$name" 
echo "$temp" 
echo "$temp/$name.zip" #Its output is also weird! 
zip -r -j "$temp/$name.zip" $path 

을주고 내 코드입니다. 첫째 UNIX 형식으로 변환 :

sed -i 's|\r||' yourscript.sh 

또는 dos2unix를 사용 : 당신이 당신의 값의 끝에 추가 문자 (캐리지 리턴 \r)를함으로써 발생 볼

dos2unix yourscript.sh 

오류 메시지. 이 문제는 DOS 형식의 파일 형식이 UNIX가 아니라 DOS인데, UNIX의 경우 \n 인 경우에만 \r\n입니다.

+0

오 대단합니다. 이것은 그것을 해결했다. 그것에 대해 결코 알지 못했다. 감사 – foobar

관련 문제