0
저는 bash 쉘 스크립팅과 새로운 문제에 직면 해 있습니다.배시 변수 값을 설정하지 않았습니다.
나는이 같은 코드를 가지고 :
function build()
{
echo "Building: " | tee -a $LOG_FILE
{
#do some processing here and if error set the err var to say 2
if [[ $err -eq 2 ]]; then
echo "Error: exit"
exitStatus=2
fi
} 2>&1 | tee -a $LOG_FILE | grep -e "$GREP_FAIL_TERM" -e "$GREP_ERROR_TERM"
}
곳
GREP_FAIL_TERM='[Ff]ail'
GREP_ERROR_TERM='[Ee][Rr][Rr][Oo][Rr][,;:\ ]'
및
exitStatus is a global variable set to 0 at the beginning of script
나는 오류가 발생하는 경우에이 기능 나오고 exitStatus의 값을 확인
0시입니다. | 상위에 반영되지 않은 서브 쉘에서 명령을 실행합니다. 그렇다면 로그 파일로 출력하는 동안 어떻게 위 코드를 실행할 수 있습니까?
정말 !! 문제가 무엇인지 알지 못합니다. –
파이프는 하위 셸을 도입합니다. 하위 셸은 부모 셸에서 변수를 설정할 수 없으므로'exitStatus'는 하위 셸에서 이스케이프 할 수 없습니다. –