2011-10-07 9 views
0

셸 스크립트가 한 줄씩 입력 내용을 읽지 않습니다.

#!/bin/sh 

for i in $(cat /etc/hosts) 

    do 

    echo $i 

    done 
#!/bin/sh 

for i in $(cat /etc/hosts) 

    do 

    echo $i 

    done 

이 스크립트를 실행할 때/etc/hosts 파일의 모든 단어가 다른 줄에 인쇄되면 파일의 줄이

127.0.0.1 localhost 

10.0.0.1 fenasi 

출력이 좋아하는 것입니다.

 127.0.0.1 

localhost 

10.0.0.1 

fenasi 

한 줄씩 파일을 읽고 원본과 같이 줄을 인쇄하는 방법이 있습니까? 명령 줄 입력을 처리 할 때도이 솔루션이 필요합니다.

감사합니다.

답변

0

을 처리하기 위해이 솔루션이 필요합니다. 우리가 필드 구분자로 만 줄 바꿈을 사용, 여기에

#!/bin/sh 
IFS=" 
" 
for i in $(cat /etc/hosts) 
    do 
    echo $i 
    done 

, 각각의 행은 필드로 간주됩니다) 다음

당신이 원하는에 가깝다.

+0

우수 괜찮습니다. – user984074

관련 문제