Cómo forzar la terminación anormal de un script bash

Cómo forzar la terminación anormal de un script bash

Tengo un Synology NAS que ejecuta DSM. Creé un script bash para verificar si un determinado archivo está presente dentro de una determinada carpeta. El script se ejecuta según un cronograma y me devuelve el resultado por correo electrónico.

El problema es que recibo demasiados correos electrónicos diciendo que el script funcionó bien.

El programador de tareas de DSM permite enviar el correo electrónico solo si el script finaliza de forma anormal.

Mi pregunta es:¿Cómo puedo forzar que el script finalice de forma anormal?

Lo haría para recibir un correo electrónico si el archivo que estoy buscando no existe.

Respuesta1

Puede utilizar exit 1para finalizar el script.

El código de salida 0significa que todo salió bien, todos los demás indican algún tipo de error.

Respuesta2

Podrías usar un código de salida si falta el archivo:

#!/bin/bash
file="/foo/bar"
if [ -e "$file" ]
then
exit 0
else
exit 1
fi

[ -e ]es un operador que comprueba si "$file"existe. Es equivalente test -e $filepero adecuado a if-else-fi.
Verprueba de hombresi necesita más operadores.

Editar:
Para más detalles, también hayotros códigos de salidaque puede usar por conveniencia, asumiendo que tiene una advertencia de correo electrónico diferente para cuando el script "explota" o no se ejecuta por algún motivo.

información relacionada