Verwenden Sie ein Skript wie dieses:
#!/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" stellt sicher, dass Ihr Programm sofort beendet wird (dies wird an sqlplus weitergeleitet). -L stellt sicher, dass sqlplus nicht nach dem Passwort fragt, wenn die Anmeldeinformationen nicht in Ordnung sind (was dazu führen würde, dass es ebenfalls hängen bleibt).
(> /dev/null verbirgt nur die Ausgabe von grep, die wir nicht brauchen, da auf die Ergebnisse in diesem Fall über $? zugegriffen wird)
Sie können die SQL-Eingabeaufforderung vermeiden, indem Sie Folgendes tun:
sqlplus uid/[email protected] < /dev/null
SqlPlus wird sofort beendet.
Greifen Sie jetzt einfach die Ausgabe des obigen wie folgt:
if sqlplus uid/[email protected] < /dev/null | grep 'Connected to'; then
# have connectivity to Oracle
else
# No connectivity
fi