A resposta curta é que fi
precisa ser um comando separado, então você precisa de ponto e vírgula:
if [ $rc1 != 0 ]; then exit $rc1; fi
if [ $rc2 != 0 ]; then exit $rc2; fi
Você deve citar suas variáveis e, como está comparando números inteiros, use o operador apropriado:
if [ "$rc1" -ne 0 ]; then exit "$rc1"; fi
if [ "$rc2" -ne 0 ]; then exit "$rc2"; fi
embora o comportamento aqui seja um pouco diferente: valores vazios serão considerados iguais a 0 (onde !=
os consideraria diferentes).