GNU/Linux >> Linux の 問題 >  >> Linux

stdout と stderr をデフォルト値に戻す

この例

<ブロック引用>

例 20-2。 exec を使用した stdout のリダイレクト

#!/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

あなたが望むものを示しているようです。これは、少量の議論やその他の関連情報がある ABS からのものです。


Linux
  1. stdout と stderr の両方にエコーする

  2. stdout と stderr でバッファリングを無効にしても安全ですか?

  3. シェル:stdout を /dev/null にリダイレクトし、stderr を stdout にリダイレクトします

  1. Bash シェル スクリプト - フラグをチェックしてその値を取得する

  2. デフォルトの arp キャッシュ タイムアウト

  3. bash:stderr をファイルにリダイレクトし、stdout + stderr を画面にリダイレクトします

  1. StderrとStdoutを別のファイルにリダイレクトし、ターミナルに表示するにはどうすればよいですか?

  2. Makefile ルール内の stdout と stderr のパイピング

  3. teeを使用してSTDERRおよびSTDOUTをファイルにキャプチャする