Arrays são bons para esse tipo de coisa (especialmente se você não tiver certeza de quantos campos existem)
while IFS=: read -a var; do
printf 'sqlplus -s1 dbsnmp/Or8cle@\"%s:%s/%s\"\n' "${var[2]}" "${var[3]}" "${var[1]}"
done < aaa.log
sqlplus -s1 dbsnmp/Or8cle@\"a0081:1800/fDb\"
sqlplus -s1 dbsnmp/Or8cle@\"a0081:1801/iDb\"
sqlplus -s1 dbsnmp/Or8cle@\"a0081:1802/pDb\"