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
stdout
Esto 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