[ 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가 리눅스가 아니어서 해당 사항이 없네요. |