Getting syntax error: line 39: test: too many arguments
by Shellscriptlnr from LinuxQuestions.org on (#4V8SM)
Below is the script I am using and when I run it I am getting the below error. Can you please help me to fix the issue.
/u01/oracle/test3/apps/apps_st/appl/wabcust/1.0.0/bin/wabcust_glexp_load.prog: line 39: test: too many arguments
/u01/oracle/test3/inst/apps/test3_wcssrv0347/logs/appl/conc/inbound/glexp_data_file/INT0 file does not exist in the above mentioned local directory...
#!/usr/bin/ksh
#Logging the parameters
ora_logon=$1
user_id=$2
request_id=$4
file_name=$5
file_path=`eval echo $6`
#batch_name=$7
data_file=$7
archive_dir=$file_path/archive
log_dir=$file_path/log
cat /u01/oracle/test3/inst/apps/test3_wcssrv0347/logs/appl/conc/inbound/glexp_data_file/$file_name* > /u01/oracle/test3/inst/apps/test3_wcssrv0347/logs/appl/conc/inbound/glexp_data_file/$data_file
echo "REQUEST_ID : "$request_id
echo "FILE_NAME : "$file_name
echo "FILE_PATH : "$file_path
#echo "BATCH_NAME : "$batch_name
echo "USER_ID : "$user_id
CONTROL_FILE=/u01/oracle/test3/apps/apps_st/appl/wabcust/1.0.0/bin/wabcust_glexp.ctl
LOG_FILE=$log_dir/$file_name-$request_id.log
BAD_FILE=$log_dir/$file_name-$request_id.bad
DISCARD_FILE=$log_dir/$file_name-$request_id.dis
if ( test -s $file_path/'$file_name*' )
then
echo "${file_name} file exists in the above mentioned local directory..."
echo "Starting SQL Loading for file ${file_name}..."
echo "SQL*Loader Parameters :"
echo "Control File : $CONTROL_FILE"
echo "Data File : $file_path/$data_file"
echo "Log File : $LOG_FILE"
echo "Bad File : $BAD_FILE"
echo "Discard File : $DISCARD_FILE"
#Loads the data into staging table
# Perform the SQL*Load process
sqlldr USERID=$ora_logon \
CONTROL=$CONTROL_FILE \
DATA=$file_path/$data_file \
LOG=$LOG_FILE \
BAD=$BAD_FILE \
DISCARD=$DISCARD_FILE \
SILENT=HEADER SILENT=FEEDBACK
if ( test -s $BAD_FILE)
then
echo " "
echo "*********SQL Loader LOG*********"
cat $LOG_FILE
echo " "
echo "*********Rejected Records*********"
cat $BAD_FILE
exit 1
elif grep -i successfully $LOG_FILE
then
#archive the file in the archive directory
cp $file_path/$file_name* $archive_dir
#Delete the file after process
rm $file_path/$file_name*
echo "GL Expenses file archived to " $archive_dir
sqlplus -s $ora_logon <<!EOF
UPDATE wabcust.wabcust_gl_exp_stg_tbl
SET created_by = $user_id,
creation_date = SYSDATE,
last_updated_by = $user_id,
last_update_date = SYSDATE;
exit
!EOF
else
echo " "
echo "*********SQL Loader LOG*********"
cat $LOG_FILE
exit 1
fi
else
echo "$file_path/$file_name file does not exist in the above mentioned local directory..."
sqlplus -s $ora_logon <<-!EOF
set feedback off
declare
l_stat Boolean;
l_session_id Number;
begin
fnd_global.initialize(session_id => l_session_id
, user_id => fnd_global.user_id
, resp_id => fnd_global.resp_id
, resp_appl_id => fnd_global.resp_appl_id
, security_group_id => null
, site_id => null
, login_id => null
, conc_login_id => null
, prog_appl_id => null
, conc_program_id => null
, conc_request_id => $request_id
, conc_priority_request => null);
l_stat := fnd_concurrent.set_completion_status('WARNING','Completed in Warning. Review log for details.');
commit;
end;
/
exit;
!EOF
fi
if ( test -s $LOG_FILE )
then
echo " "
echo "*********SQL Loader LOG*********"
cat $LOG_FILE
fi
if ( test -s $BAD_FILE )
then
echo " "
echo "*********Rejected Records*********"
cat $BAD_FILE
fi


/u01/oracle/test3/apps/apps_st/appl/wabcust/1.0.0/bin/wabcust_glexp_load.prog: line 39: test: too many arguments
/u01/oracle/test3/inst/apps/test3_wcssrv0347/logs/appl/conc/inbound/glexp_data_file/INT0 file does not exist in the above mentioned local directory...
#!/usr/bin/ksh
#Logging the parameters
ora_logon=$1
user_id=$2
request_id=$4
file_name=$5
file_path=`eval echo $6`
#batch_name=$7
data_file=$7
archive_dir=$file_path/archive
log_dir=$file_path/log
cat /u01/oracle/test3/inst/apps/test3_wcssrv0347/logs/appl/conc/inbound/glexp_data_file/$file_name* > /u01/oracle/test3/inst/apps/test3_wcssrv0347/logs/appl/conc/inbound/glexp_data_file/$data_file
echo "REQUEST_ID : "$request_id
echo "FILE_NAME : "$file_name
echo "FILE_PATH : "$file_path
#echo "BATCH_NAME : "$batch_name
echo "USER_ID : "$user_id
CONTROL_FILE=/u01/oracle/test3/apps/apps_st/appl/wabcust/1.0.0/bin/wabcust_glexp.ctl
LOG_FILE=$log_dir/$file_name-$request_id.log
BAD_FILE=$log_dir/$file_name-$request_id.bad
DISCARD_FILE=$log_dir/$file_name-$request_id.dis
if ( test -s $file_path/'$file_name*' )
then
echo "${file_name} file exists in the above mentioned local directory..."
echo "Starting SQL Loading for file ${file_name}..."
echo "SQL*Loader Parameters :"
echo "Control File : $CONTROL_FILE"
echo "Data File : $file_path/$data_file"
echo "Log File : $LOG_FILE"
echo "Bad File : $BAD_FILE"
echo "Discard File : $DISCARD_FILE"
#Loads the data into staging table
# Perform the SQL*Load process
sqlldr USERID=$ora_logon \
CONTROL=$CONTROL_FILE \
DATA=$file_path/$data_file \
LOG=$LOG_FILE \
BAD=$BAD_FILE \
DISCARD=$DISCARD_FILE \
SILENT=HEADER SILENT=FEEDBACK
if ( test -s $BAD_FILE)
then
echo " "
echo "*********SQL Loader LOG*********"
cat $LOG_FILE
echo " "
echo "*********Rejected Records*********"
cat $BAD_FILE
exit 1
elif grep -i successfully $LOG_FILE
then
#archive the file in the archive directory
cp $file_path/$file_name* $archive_dir
#Delete the file after process
rm $file_path/$file_name*
echo "GL Expenses file archived to " $archive_dir
sqlplus -s $ora_logon <<!EOF
UPDATE wabcust.wabcust_gl_exp_stg_tbl
SET created_by = $user_id,
creation_date = SYSDATE,
last_updated_by = $user_id,
last_update_date = SYSDATE;
exit
!EOF
else
echo " "
echo "*********SQL Loader LOG*********"
cat $LOG_FILE
exit 1
fi
else
echo "$file_path/$file_name file does not exist in the above mentioned local directory..."
sqlplus -s $ora_logon <<-!EOF
set feedback off
declare
l_stat Boolean;
l_session_id Number;
begin
fnd_global.initialize(session_id => l_session_id
, user_id => fnd_global.user_id
, resp_id => fnd_global.resp_id
, resp_appl_id => fnd_global.resp_appl_id
, security_group_id => null
, site_id => null
, login_id => null
, conc_login_id => null
, prog_appl_id => null
, conc_program_id => null
, conc_request_id => $request_id
, conc_priority_request => null);
l_stat := fnd_concurrent.set_completion_status('WARNING','Completed in Warning. Review log for details.');
commit;
end;
/
exit;
!EOF
fi
if ( test -s $LOG_FILE )
then
echo " "
echo "*********SQL Loader LOG*********"
cat $LOG_FILE
fi
if ( test -s $BAD_FILE )
then
echo " "
echo "*********Rejected Records*********"
cat $BAD_FILE
fi