bash cómo redirigir la salida de una función a /dev/null

bash cómo redirigir la salida de una función a /dev/null

Tengo un script con algunas funciones ( ~/func/functions.sh) y tengo el otro script ( ~/scripts/example.sh)

Código: funciones.sh

 #!/bin/bash
 function NameofFunction()
 {
  # do something...
  echo -e "\e[31m[ ERROR ]\e[39m more text..." 1>&2
  }

Código: ejemplo.sh (funciona bien)

#!/bin/bash

. ~/func/functions.sh
function functioninExample()
{
#do something...
NameofFunction ${VAR1} ${VAR2}

}

functioninExample 2>/dev/null

Código: ejemplo.sh (no funciona)

#!/bin/bash

. ~/func/functions.sh
function functioninExample()
{
#do something...
NameofFunction ${VAR1} ${VAR2} 2>/dev/null

}

functioninExample

¿Cómo puedo redirigir el eco desde mi función sin editar la función?

NameofFunction ${VAR1} ${VAR2} 2>/dev/null 

no funciona.

¿Cómo puedo redirigir el eco desde mi función sin redirigir la función functioninExample?

Respuesta1

stdoutEsto se debe a que su función no imprime stderr, intente

NameofFunction ${VAR1} ${VAR2} >/dev/null

o redirigir ambosstderr y stdout:

NameofFunction ${VAR1} ${VAR2} >/dev/null 2>&1

Tenga en cuenta que es un buen estilo imprimir errores stderr, por lo que en lugar de mi respuesta anterior, será mejor que cambie su función, de esta manera:

echo -e "\e[31m[ ERROR ]\e[39m more text..." 1>&2

información relacionada