1. ホーム
  2. bash

[解決済み] ファイルディスクリプタはどのように機能するのですか?

2023-09-01 18:54:40

質問

なぜこれが動作しないのか、誰か教えてください。私はファイル記述子で遊んでいますが、少し迷っている感じです。

#!/bin/bash
echo "This"
echo "is" >&2
echo "a" >&3
echo "test." >&4

最初の3行は問題なく実行されますが、最後の2行はエラーになります。なぜでしょうか?

どうすれば解決できますか?

ファイルディスクリプタ0、1、2はそれぞれstdin、stdout、stderrのためのものです。

ファイルディスクリプタ3、4、...9は、追加ファイル用です。これらを使用するには、最初にそれらを開く必要があります。例えば

exec 3<> /tmp/foo  #open fd 3.
echo "test" >&3
exec 3>&- #close fd 3.

より詳細な情報は Bash-Scripting上級ガイド。第20章. I/Oリダイレクション .