2013-07-10 3 views
0

나는 다른 곳에서 가져온 데이터를 기반으로 해당 스크립트로 인라인으로 실행되도록 expect 명령을 빌드하는 스크립트를 설정하려고합니다.에코 출력이 제대로 포맷되지 않았습니다.

은 내가 다음 코드

while read filel 
do 
    echo 'send "get '${filel}'\n"' >> $ExpectCMMDSGET 
    echo 'expect "sftp>"' >> $ExpectCMMDSGET 
done < "$DirList" 

을 사용하고이

send "get filename1.out.dat.pgp\n" 
expect "sftp>" 
send "get filename2.out.dat.pgp\n" 
expect "sftp>" 

처럼 보이도록 출력을 필요로하지만 난 파일 아웃 내가

\n"d "get filename1.out.dat.pgp 
expect "sftp>" 
\n"d "get filename2.out.dat.pgp 
expect "sftp>" 

을받을 때 고양이 때 내가 VI에서 봐.

send "get filename1.out.dat.pgp^M\n" 
expect "sftp>" 
send "get filename2.out.dat.pgp^M\n" 
expect "sftp>" 

일단 사용하기 전에 파일이 생성되었지만 작동하지 않으면^M을 제거하기 위해 sed를 사용해 보았습니다.

어떤 제안

답변

2

"$DirList"이 캐리지 리턴을 포함처럼 소리. sed -i "s/\r//g" file을 사용하여 파일에서 삭제할 수 있습니다. 원본 입력에서 삭제할 수도 있지만 생성 된 파일에서 삭제할 수 있습니다.

+0

롤 물론 나는 그것을 생각하지 않았다. 나는 결과에 너무 집중했다. 그것을 주셔서 감사합니다 그것은 매력처럼 작동했습니다. – camarokris

관련 문제