Приведенный ниже l oop захватывает две переменные opt1 и opt2, однако l oop выходит без данных.
#!/usr/bin/ksh
set -x
if [ -z ${OPT1} ] || [ -z ${OPT2} ]
then
echo "Parameter error" 1>&2
exit 1
fi
if [ $? -ne 0 ]
then
echo "switch logfile cannot sync correctly" 1>&2
exit 1
fi
sleep 20
echo "Check status" >> /home/oracle/scripts/log/$LOGFILE
OPT2=`sqlplus -S username/password@${db1} << EOF
set heading off feedback off pagesize 0 verify off echo off numwidth 15
select max(ARCHIVED_SEQ#) from v\\$ARCHIVE_DEST_STATUS;
EOF`
OPT1=`sqlplus -S username/password@${db2}<< EOF
set heading off feedback off pagesize 0 verify off echo off numwidth 15
select max(APPLIED_SEQ#) from V\\$ARCHIVE_DEST_STATUS;
EOF`
if [[ ! ${OPT2} == ${OPT1} ]]
then
echo "data do not match " 1>&2
else
echo "data matches" 1>&2
exit 1
fi
until [ "$OPT1" -eq "$OPT2" ]; do
echo "data is equal." | mailx -s "DATA Match" email@mail.com
sleep 30
if [ $? -eq 0 ]; then
break
fi
done
echo "data match is completed" | mailx -s "DATA Match" email@mail.com
Пожалуйста, помогите, поскольку я ожидаю, что l oop продолжится пока обе переменные не станут равными, а затем продолжите выполнение следующих команд в сценарии.