Ejecución condicionalEsta funcionalidad nos la proporcionan los operadores "&&" y "||".
Operador &&El primer operador, "&& " separa dos órdenes de forma que la que tiene a la derecha sólo se ejecuta cuando la de la izquierda termina correctamente, es decir
orden1 && orden2
orden2 sólo se ejecutará si orden1 terminó sin ningún error.
Por ejemplo, queremos ejecutar la orden cat fichero sólo si existe fichero; entonces tendremos que buscar una orden que termine con un error si no existe fichero, por ejemplo ls fichero y condicionar la ejecución de cat fichero a esta:
$ ls fichero && cat fichero Otro ejemplo, para compilar los controladores de dispositivos de linux e instalarlos, lo podemos hacer como:
make module && make modules_install es decir instalará los controladores sólo si ha conseguido compilarlos correctamente.
Operador ||El segundo operador, "|| " tiene un comportamiento similar al anterior, separa dos órdenes de forma que la que tiene a la derecha sólo se ejecuta cuando la de la izquierda termina incorrectamente, es decir
orden1 || orden2
orden2 sólo se ejecutará si orden1 terminó con algún error.
Por ejemplo si no existe fichero queremos crearlo vacía y si existe no hacemos nada. Igual que en el ejemplo anterior, buscamos una orden que termine con un error si no existe fichero y condicionamos la ejecución de la orden touch fichero al error de la orden previa:
$ ls fichero || touch fichero También, al igual que en el ejempo anterior podríamos hacer que si el proceso make modules falla, se borraran todos los ficheros temporales que se crean:
make modules || rm -r *.oSaludos..................

Nota:En resumen, se permite la reproducción parcial o total de estos textos en cualquier medio , impreso o electrónico, siempre que no se impongan condiciones adicionales a la reproducción y distribución de las copias o de los trabajos derivados que incorporen este documento. En resumen, cualquier trabajo derivado de ese texto debe mantener esta nota de copyright.