Bash : while문에 파이프로 던질경우 서브 프로세스를 생성하므로 while 문 안에 있는 변수를 활용할수 없다.

By | 2017년 3월 17일

while문에 파이프로 던질경우 서브 프로세스를 생성하므로 while 문 안에 있는 변수를 활용할수 없다. 그러나 {} 블럭을 사용하면 while문 밖에서도 사용이 가능하다. <– 이렇게 할바에 리다이렉트로 사용하는편이 낫다.

위의 방법대로 하면 while  문은 서브프로세스를 생성한다. $FILES 변수는 파이프 블럭 내부에서만 이용되는데 { } 블럭을 넣어주면 외부에도 접근이 된다. 그러나 이렇게 되는 처리방법보다 아래의 방법이 좀더 수월하다.

@대안

많은 스크립트가 왜이렇게 사용되어지는 위의 두가지 스크립트를 비교해보면 알수 있다.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다