Hi,
We have a problem in Linux (GNU/Linux 3.10.0-693.1.1.el7.x86_64) with a shell script returning 267 as return code. The script, load_flag.sh
is called from main_script.sh
(both script samples given below). The exit code from load_flag.sh
is used to decide whether to continue execution of main_script.sh
. Exit code is sometimes coming as 267 and main_script.sh
is not executing. This issue is not happening in every run, but sporadically. Any idea, why we are getting the exit code as 267 and the possibel solution for this.
#main_script.sh
#!/bin/ksh
##### run the environment setup script
. /path/setup.sh
##LOADER_HOME and other variables are set in setup.sh
$LOADERS_HOME/load_flag.sh ABC
LOAD_FLAG_ABC=$?
if [ ! $LOAD_FLAG_ABC = 0 ]
then
echo `date `' LOAD_FLAG_ABC: ' $LOAD_FLAG_ABC
exit 0
fi
....
<<script continues>>
....
....
....
#load_flag.sh
#!/bin/ksh
SYSTEM_NAME=$1
#############################################################
##### Obtain loading flags from database
#############################################################
DBCONNECTION=$DBUSER@$DBSERVER/$DBPASS
LOAD_FLAG=`$ORACLE_HOME/bin/sqlplus <<+ | grep '^-' | sed 's/-//'
\$DBCONNECTION
SET SERVEROUTPUT ON FORMAT WRAPPED
SET PAGESIZE 0
SET FEEDBACK OFF
DECLARE
L_STATUS VARCHAR2(100);
L_SYSTEM VARCHAR2(100);
BEGIN
L_SYSTEM := '\${SYSTEM_NAME}';
L_STATUS := SCHEMA.PACKAGE.FUNCTION(L_SYSTEM);
DBMS_OUTPUT.PUT_LINE(CHR(10) || '-' || L_STATUS);
EXCEPTION WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(CHR(10) || '-' || SQLCODE || ':' || SQLERRM);
END;
/
exit
+`
echo FLAG FOR $1: $LOAD_FLAG
if [ $LOAD_FLAG = 0 ]
then
exit 0
fi
exit 1