¿Redireccionar STDERR en K/SH?

¿Redireccionar STDERR en K/SH?

Una vez que se redirige STDERR, por ejemplo a un archivo, ¿cómo se puede redirigir nuevamente al descriptor de archivo original 2?

#!/bin/sh
exec 2>/tmp/err
print -u2 'log errors to file'
exec 2>&2  (how do we do this???)
print -u2 'log errors to console'

Contexto

Esta solución de redireccionamiento debería funcionar en un trabajo cron. Por ejemplo, si cron ejecuta un script externo, ese script redirigirá stdout y stderr a archivos de registro y de error relevantes, respectivamente. Sin embargo, si falla una ejecución en el script o es necesario informar algo al propietario del trabajo, debo generar los mensajes de error para que cron los reciba y envíe el correo.

Respuesta1

Intentar:

#!/usr/bin/env ksh
exec 2>ksh_err.txt
print -u2 'log errors to file'
exec 2>`tty`
print -u2 'log errors to console'

Edición 1:

#!/usr/bin/env ksh

exec 8>err.txt
print -u8 'log errors to file'
print -u2 'log errors to console'

Edición 2:

#!/usr/bin/env ksh

exec 3>&2
exec 2>err.txt
print -u2 'log errors to file'
exec 2>&3
print -u2 'log errors to console'

información relacionada