Actualmente uso esta función para ajustar 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 .¿Cuál es la mejor manera de escribir una función de envoltura que ejecuta comandos y registra su código de salida
Sin embargo, esto es problemático ya que aparentemente hace una doble interpolación, haciendo que los comandos con comillas simples o dobles rompan la secuencia de comandos.
¿Se 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
}
nice. vencerme a tiempo: p –
Por supuesto, 'cmd; si [[$? -eq 0]]; entonces stuff' es más idiomáticamente escrito 'if cmd; luego cosas'. – tripleee
Pero el código debería usar $ ret más tarde, por lo que guardarlo es más claro en mi humilde opinión. –