GNU/Linux >> Znalost Linux >  >> Linux

Obnovení stdout a stderr na výchozí hodnotu

Tento příklad

Příklad 20-2. Přesměrování stdout pomocí 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

zobrazí, co chcete. Přišlo to z ABS, kde je malé množství diskuzí a dalších relevantních informací.


Linux
  1. Propojení stdout a stderr uvnitř pravidla Makefile

  2. Je možné, že linuxový deskriptor souboru 0 1 2 není pro stdin, stdout a stderr?

  3. bash:přesměrování stderr do souboru a stdout + stderr na obrazovku

  1. Lomítko a zpětné lomítko v Sed?

  2. Zobrazit na obrazovce pouze Stderr, ale zapsat do souboru Stdout i Stderr?

  3. Zachycení STDERR a STDOUT do souboru pomocí tee

  1. Echo jak stdout, tak stderr

  2. Je bezpečné zakázat ukládání do vyrovnávací paměti pomocí stdout a stderr?

  3. Shell:přesměrujte stdout na /dev/null a stderr na stdout