셸 순환 변수 역할 범위

더 읽 기
#!/bin/sh

test()
{
	RetVal=0

	cat 1.log | while read line
	do
		if[ "$line" == "2" ]
		then
			RetVal=1
		fi
	done
	
	return $RetVal
}

 
상기 코드 를 쉽게 쓸 수 있 습 니 다. 상기 코드 의 반환 값 은 항상 0 입 니 다.RetVal = 1 이라는 문 구 를 실 행 했 지만 while 순환 이 나 오 자마자 변수 값 이 0 으로 바 뀌 었 습 니 다.
이것 은 파이프 가 하위 셸 에서 실행 되 기 때 문 입 니 다. 하위 셸 의 변 수 는 하위 셸 이외 의 코드 블록 에 있어 서 보이 지 않 습 니 다. 물론 부모 프로 세 스 도 접근 할 수 없습니다.
이 변 수 는 부모 프로 세 스 가 이 하위 셸 을 만 드 는 셸 을 말 합 니 다. 사실 이 변 수 는 모두 부분 변수 입 니 다.
 
#    
test()
{
	RetVal=0

	while read line
	do
		if[ "$line" == "2" ]
		then
			RetVal=1
		fi
	done < 1.log
	
	return $RetVal
}

좋은 웹페이지 즐겨찾기