GNU/Linux >> Linux Esercitazione >  >> Linux

Ripristino di stdout e stderr al valore predefinito

Questo esempio

Esempio 20-2. Reindirizzamento di stdout tramite exec

#!/bin/bash
# reassign-stdout.sh

LOGFILE=logfile.txt

exec 6>&1           # Link file descriptor #6 with stdout.
                    # Saves stdout.

exec > $LOGFILE     # stdout replaced with file "logfile.txt".

# ----------------------------------------------------------- #
# All output from commands in this block sent to file $LOGFILE.

echo -n "Logfile: "
date
echo "-------------------------------------"
echo

echo "Output of \"ls -al\" command"
echo
ls -al
echo; echo
echo "Output of \"df\" command"
echo
df

# ----------------------------------------------------------- #

exec 1>&6 6>&-      # Restore stdout and close file descriptor #6.

echo
echo "== stdout now restored to default == "
echo
ls -al
echo

exit 0

sembra mostrare quello che vuoi. È venuto dall'ABS, dove c'è una piccola quantità di discussione e altre informazioni rilevanti.


Linux
  1. ${!foo} E Zsh?

  2. Come reindirizzare Stderr e Stdout su file diversi e visualizzarli anche nel terminale?

  3. Slash e backslash in Sed?

  4. Mostra solo Stderr sullo schermo ma scrivi sia Stdout che Stderr su file?

  5. Come può un processo intercettare stdout e stderr di un altro processo su Linux?

Confuso su stdin, stdout e stderr?

È sicuro disabilitare il buffering con stdout e stderr?

Piping stdout e stderr all'interno di una regola Makefile

È possibile che il descrittore di file linux 0 1 2 non sia per stdin, stdout e stderr?

Il valore hash MD5 è diverso da Bash e PHP

echo o print /dev/stdin /dev/stdout /dev/stderr