CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ CnUnix ] in KIDS
글 쓴 이(By): zoo11 (rwsrwxrwx)
날 짜 (Date): 2009년 08월 07일 (금) 오전 08시 47분 13초
제 목(Title): Re: 쉘 스크립트 질문



루프에서 컨디션 체크할 때 ${#inline[@]}가 매번 새로이 계산될텐데요.
O(n^2)가 되는 것 아닌지? bash internal을 모르니 확실히는 모르겠군요.

--
${#inline[@]} 이 새로 계산 되지 않게 하기 위해, loadfile 할 때 마지막
라인의 갯수($zz)를 이용해서 catfile의 루프를 돌렸는데요. 결과는 마찬
가지네요.

catfile()
{
    for ((i=1;i<$zz;i++))
    do
        echo ${inline[$i]}
    done
}

말씀 하신대로, bash array에서 읽어서 처리하는 것 보다 cat등으로 
파일을 직접 읽는 것이 더 빠른 듯 합니다. 캐쉬등의 영향이겠죠.
그럼, 스크립트의 속도를 높이기 위해서는 다른 방법을 생각 해 봐야
겠네요. 흑흑흑. 아무리 생각해도 스크립트가 느린 이유는 한 파일을
여러번 읽어 서로 다른 패턴 검색을 하는 부분 때문인데 어떻게 개선
해야 할지 난감 합니다.

말씀 하신 다른 부분은 OS가 리눅스가 아니어서 해당 사항이 없네요.

[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.