Perl 스크립트를 사용하여 Oracle DB에 연결하여 Solaris OS에서 일부 쿼리를 실행하려고 하며 각 쿼리를 다음과 같이 저장했습니다.
create table t1 ..
update t1 ..
insert into t1 ..
중요한 점은 순서대로 실행해야 하며, 그 중 하나가 실패하면 스크립트가 종료되어야 한다는 것입니다. 한 부분이 실패하면 종료되는 쉘 스크립트를 어떻게 작성할 수 있습니까?
여러 번 시도했지만 set -e
Solaris에서는 제대로 작동하지 않습니다. 마침내 비슷한 것을 찾았지만 같은 문제가 있었고 매번 실패했습니다.
if ! nohup /data/scripts/drop_table.pl >> /info/saved/LOG/`date +\%Y\%m\%d`_result.log 2>&1;
then echo "dropping error!!" >&2;
exit 1;
fi
if ! nohup /data/scripts/update_table.pl >> /info/saved/LOG/`date +\%Y\%m\%d`_result.log 2>&1;
then echo "updating error!!" >&2;
exit 1;
fi
if ! nohup /data/scripts/insert_table.pl >> /info/saved/LOG/`date +\%Y\%m\%d`_result.log 2>&1;
then echo "insertion error!!" >&2;
exit 1;
fi