ファイル記述子を閉じる、>&-、<&-

ファイル記述子を閉じる、>&-、<&-

私が読んでいるbashチュートリアルでは、読み取るためにファイル記述子を開くと、次のように言います。

exec 3< echolist

ではこうして閉じなければならないが、

exec 3<&-

ただし、書き込み用にファイル記述子を開いた場合は、次のように閉じる必要があります。

exec 3>&-

しかし、インターネットを見ると、人々は次のようにファイルを開いて閉じることを見ることができます。

exec 3>&- 

メモ:チュートリアルによると、いつ使用する必要がありますかexec 3<&1

exec n>&-だから私の質問は、nがファイルディスクリプタ番号である場所ですべてのファイルディスクリプタを閉じることは可能ですか?読み取り、書き込み、またはその両方が可能ですか?

ベストアンサー1

<&-ファイル記述子を使用して閉じることができ、>&-両方bashの構文は同じように解析されます。

ファイルからy.tab.cbashソースコードから:

5385   /* Hack <&- (close stdin) case.  Also <&N- (dup and close). */                
5386   if MBTEST(character == '-' && (last_read_token == LESS_AND || last_read_token == GREATER_AND))
5387     return (character);

おすすめ記事