salida estándar y error de funciones

salida estándar y error de funciones

¿Hay alguna manera de obtener la salida estándar y el error estándar de las funciones dentro de un script bash? Esto es lo que "pensé" que estaba tratando de lograr con mi guión:

#!/bin/bash

LOGS="tmp/sync.log"

function1()
{
echo " "
echo "beginning function 1"
echo " "
for-loop-that-will-run-a-command
}

function2()
{
echo " "
echo "beginning function 2"
echo " "
for-loop-that-will-run-a-command
}

function1 2>&1 "$LOGS" &&
function2 2>&1 "$LOGS" ||

cat "$LOGS" | mailx -s "Here are the logs" [email protected]

Pero no obtengo nada, ¿cuál es la forma más eficiente y elegante de lograrlo?

Respuesta1

No redirige nada a $LOGS, solo redirige stderra stdout. Entonces, la redirección correcta debería ser la siguiente para sobrescribir el $LOGSarchivo.

function1 > "$LOGS"  2>&1 &&
function2 >> "$LOGS"  2>&1 ||

O, mientras usa bash, puede usar los comandos de la siguiente manera.

function1 &> "$LOGS" &&
function2 &>> "$LOGS" ||

información relacionada