$Y에 "ERROR" 또는 "ORA-"가 있는지 확인하고 싶습니다. 오류가 발생하면 종료
Y=`sqlplus -s user/passwd<< EOF
exec test_Proc;
exit;
EOF`
if [ echo $Y | awk '/ERROR/ || /ORA-/' ] ; then
exit 1
fi
그러나 이것은 작동하지 않습니다.
답변1
실행 중인 경우 bash
정규식 일치를 사용하여 이 작업을 수행할 수 있습니다.
if [[ $Y =~ (ERROR|ORA-) ]]; then
echo error
fi
또는 주장하는 경우 다음과 같이 할 수 있습니다 awk
.
if ! printf '%s\n' "$Y" | awk '/ERROR|ORA-/ {exit 1}'; then
echo error
fi
요점은 awk
쉘 표현식 논리가 아닌 정규 표현식을 사용한다는 것입니다.
가장 쉬운 방법은 아마도 다음을 사용하는 것입니다 grep
.
printf '%s\n' "$Y" | egrep -q 'ERROR|ORA-' && echo error