Evaluar el resultado (verdadero o falso) de un comando

7 febrero, 2013
admin

Cuando, dentro de un programa, queramos saber si un comando se ejecuta correctamente o no, se usará alguna de las siguientes estructuras:

El ejemplo comprueba si existe un fichero llamado “fich1.txt” colgando del directorio actual:

    #! /bin/bash
    if ls|grep fich1.txt >/dev/null; then
    printf “El fichero fich1.txt existe”
    else
    printf ” El fichero fich1.txt no existe “
    fi

Recordar que if puede ir acompañado de una condición o de un comando. Si va acompañado de un comando, se ejecutarán las instrucciones asociadas al if si el comando se ejecuta correctamente (es decir, devuelve 0) y se ejecutarán las instrucciones asociadas al else si el comando no se ejecuta correctamente.

En este caso, la instrucción “ls|grep fich1.txt” no va entre comillas francesas ya que su resultado no es asignado a ninguna variable.

Si la instrucción “ls|grep fich1.txt” se ejecuta correctamente (existe el fichero), escribe por pantalla la linea “fich1.txt”. Para que dicha línea no salga por pantalla, se envía la salida a la “papelera de reciclaje” de Linux, que es el fichero /dev/null.

    #! /bin/bash
    ls | grep fich1.txt >/dev/null
    error=$?
    If [ $error –eq 0 ]; then
    printf “El fichero fich1.txt existe”
    else
    printf “El fichero fich1.txt no existe”
    fi

Esta estructura es equivalente a la anterior. Recordar que la variable $? Se debe leer justo después de ejecutar el comando.

    #! /bin/bash
    ls|grep fich1.txt >/dev/null
    if [ $? –eq 0 ]; then
    printf “El fichero fich1.txt existe”
    else
    printf “El fichero fich1.txt no existe”
    fi

Esta estructura es equivalente a la anterior sin usar la variable intermedia “error”.

Sin comentarios

You must be logged in to post a comment.
CONTENIDO PATROCINADO POR

FPla Informatica

Diseño web y Marketing digital
Disponga de una página web o un comercio electrónico de alta calidad a precios muy competitivos.
ACCEDER A FPLA INFORMATICA
close-link