Se me asignó la tarea de crear un script de refuerzo de servidor automatizado y una cosa que necesitan es un informe de todos los resultados de cada comando ejecutado. Quiero almacenar el mensaje de error dentro de una cadena y agregarlo en un archivo de texto.
Digamos que ejecuté este comando:
/sbin/modprobe -n -v hfsplus
El resultado de ejecutar esto en mi máquina sería:
FATAL: Module hfsplus not found
¿Cómo puedo almacenar ese mensaje de error dentro de una cadena? Cualquier ayuda sería muy apreciada. ¡Gracias!
Respuestas:
puedes hacerlo redirigiendo el comando de errores:
como un guión
o
si desea agregar el error, use en
>>
lugar de>
Asegúrese de usar
2>&1
y no2> &1
evitar el error "error de sintaxis cerca del token inesperado` & '"fuente
Simplemente para almacenar como una cadena en script bash:
Esto puede ser un poco mejor ya que verá mensajes cuando se ejecute el comando:
fuente
Capturo un error como este
si la fuente falla, capturaré el error y lo registraré. log_warn es solo una función simple.
Por cierto, uso esto en mis archivos de puntos
fuente
Para adjuntar a un archivo use
/sbin/modprobe -n -v hfsplus 2>> filename
fuente
Nuevas versiones de bash (es decir, bash 4.1+):
fuente
Para devolver el mensaje de error en una variable, simplemente;
fuente