script linux

Necesito un script que compruebe que java y mysql estan instalados en el equipo pero no se que es lo que deberia comprobar el script ni como controlar lo que me devuelva ,echadme una mano ;)
Ejecuta un java -version para java, y recoge la salida... de mysql... el cliente o el servidor? si es el cliente, mysql -version (o --version), y si es el servidor, comprueba el binario mysqld, o si tiene que estar ejecutandose, el pid, o el socket.
como seria la sintaxis para manejar el error level tanto de java como mysql ,esque estoy probado pero no me sale bien ,algo asi como
java --version
        if[errorlevel >0]then
           echo"error java"
        fi


Por cierto trato de redireccionar la salida de java - version con java -version >> archivo y con mysql -version igual , sigue saliendo por la consola
zaius5 escribió:Por cierto trato de redireccionar la salida de java - version con java -version >> archivo y con mysql -version igual , sigue saliendo por la consola


Usaran la salida de error, usa 2> en vez de >
java -version 2> /dev/null || echo "error java"
amuchamu escribió:java -version 2> /dev/null || echo "error java"

Gracias esto es lo que necesitaba si no te importa me podrias explicar lo que hace? a ver redirecciona java -version a /dev/null y luego el uso de la tuberia no lo entiendo.Y si no hay error quisiera lanzar un archivo .jar como lo hago?Gracias
si en ved de mostrar un error quieres ejecutar un comando (si el anterior no dio error) intercambia el operador OR (||) por un AND (&&)

java -version > /dev/null 2>&1 && comando_a_ejecutar

(la parte de > /dev/null 2>&1 es para redireccionar la salida standard/errores a null, osea, que no muestre nada por pantalla)
Podrías, por ejemplo, hacer:

java -version 2> /dev/null && aquí_si_hay_java || aquí_si_no_hay_java

&& y || son operadores binarios. Para que nos entendamos, && ejecuta lo que sigue si el resultado de la acción anterior es cierto (es decir, la salida normal que da cualquier programa que termina correctamente, 0), || ejecuta lo que sigue si la acción anterior terminó incorrectamente (devolvió algo distinto de 0).

Por ejemplo:

java -version 2> /dev/null && java loquesea.jar || echo "error: java no está instalado"
ok ,gracias ,vaya despiste no se poque pensaba que la tuberia era || (que es el OR)en vez de esto | XD
9 respuestas