Control de Comandos

No hay nada más molesto para un sysadmin que correr los scripts en algún sistema y que alguno de los comandos que forman parte del código no esté presente en el sistema. Así, disponemos de comandos que miran que otros comandos están o no están dando el correspondiente aviso y abortando la ejecución.

La sintaxis como sigue:

command -v $COMANDO 

Un ejemplo:

$ command -v cp
/bin/cp

Ahora uno que no existe

$ command -v prueba
$ $?
1

Vemos como responde con la ruta al ejecutable en éxito y pone a 1 el flag de error cuando no existe. ¿Cómo lo usamos en un script? Muy fácil

Lo primero que necesitamos es una variable CMDLIST donde listamos los comandos que necesitamos

CMDLIST="ls cp nmap echo cat";

y creamos un bucle para comprobar que existen o salimos con algún mensaje de error que indique que comando falta.

for i in $CMDLIST
do
  command -v $i >/dev/null && continue || { echo "$i command not found."; exit 1; }
done

Dependiendo de la funcionalidad del script, el echo de comprobar que todos los elementos están nos puede ahorrar algún disgusto como perdida de datos o de tiempo ya que en el peor de los casos, el comando que falta puede ser el último de un programa de lotes que tarde varias horas en completarse.

This entry was posted in Linux Script and tagged , , , . Bookmark the permalink.