Qual é a melhor maneira de escrever uma função de wrapper que executa comandos e registra seu código de saída
Atualmente, uso essa função para agrupar comandos de execução e registrar sua execução, código de retorno e saída no caso de um código de retorno diferente de zero.
No entanto, isso é problemático como aparentemente, ele faz dupla interpolação, fazendo com que comandos com aspas simples ou duplas quebrem o script.
Você pode recomendar uma maneira melhor?
Aqui está a função:
do_cmd()
{
eval $*
if [[ $? -eq 0 ]]
then
echo "Successfully ran [ $1 ]"
else
echo "Error: Command [ $1 ] returned $?"
exit $?
fi
}