¿Cuál es la mejor manera de escribir una función de contenedor que ejecuta comandos y registra su código de salida?
Actualmente utilizo esta función para envolver los comandos de ejecución y registrar su ejecución, y el código de retorno, y salir en caso de un código de retorno distinto de cero.
Sin embargo, esto es problemático, ya que aparentemente hace doble interpolación, haciendo que los comandos con comillas simples o dobles rompan el guión.
¿Me puede recomendar una mejor manera?
Aquí está la función:
do_cmd()
{
eval $*
if [[ $? -eq 0 ]]
then
echo "Successfully ran [ $1 ]"
else
echo "Error: Command [ $1 ] returned $?"
exit $?
fi
}