Utilice un script como este:
#!/bin/sh
echo "exit" | sqlplus -L uid/[email protected] | grep Connected > /dev/null
if [ $? -eq 0 ]
then
echo "OK"
else
echo "NOT OK"
fi
echo "exit" asegura que su programa finaliza inmediatamente (esto se canaliza a sqlplus).-L asegura que sqlplus no solicitará la contraseña si las credenciales no están bien (lo que también podría atascarlo).
(> /dev/null simplemente oculta la salida de grep, que no necesitamos porque se accede a los resultados a través de $? en este caso)
Puede evitar el aviso de SQL haciendo:
sqlplus uid/[email protected] < /dev/null
SqlPlus sale inmediatamente.
Ahora solo grep la salida de lo anterior como:
if sqlplus uid/[email protected] < /dev/null | grep 'Connected to'; then
# have connectivity to Oracle
else
# No connectivity
fi