problema do descritor de arquivo com o script bash de looping

0

Eu herdei um script que faz isso em uma função:

# IO redirection for logging.
#touch $LOGFILE
exec 6>&1           # Link file descriptor #6 with stdout.
                # Saves stdout.
exec > $LOGFILE     # stdout replaced with file $LOGFILE.

touch $LOGERR
exec 7>&2           # Link file descriptor #7 with stderr.
                # Saves stderr.
exec 2> $LOGERR     # stderr replaced with file $LOGERR.

Mais tarde, na função, isso acontece:

#Clean up IO redirection
exec 1>&6 6>&-      # Restore stdout and close file descriptor #6.
exec 1>&7 7>&-      # Restore stdout and close file descriptor #7.

O problema é se eu chamar esta função duas vezes (ou seja, em um loop) a segunda iteração pára no primeiro conjunto de código acima sem mostrar um erro.

Por que isso seria feito?

    
por Dave 05.02.2013 / 01:57

1 resposta

1

Não sei ao certo por que "pararia", o que você quer dizer com isso (o script sai? Pare?), mas vejo um problema: a última linha deve ser exec 2>&7 7>&- . (Além disso, o comentário nessa linha deve dizer "stderr" em vez de "stdout".)

    
por 08.02.2013 / 04:29

Tags