bashでEOFをエコーする方法は?[閉まっている]


9

検索後、EOFのアスキーはのようですが-1、どうすればechoそれを見つけることができますか?

これを行う私の目的はctrl-d、私がecho外出した場合に押すと同じように動作するかどうかをテストすることEOFです。

回答:


9

EOFをエコーする方法はありません。EOFは、ファイルの終わりに到達するか、読み取られているファイルが端末にバインドされているときに、eof端末設定にバインドされているキープレス(CtrlDデフォルトでは)を呼び出すことによってのみ生成できます。


stdio.hのEOFよう-1に定義されていませんか?ASCII値がわかっているのに、エコーできないのはなぜですか?
ロケール

だから何。int-1の値を持つ(または4294967295我々は符号なしのバージョンを考慮すれば)文字のみ0から255までの値を持つことができるので、おそらく、とにかく文字にすることはできません。
Ignacio Vazquez-Abrams

そもそもそれが何であるかをどうやって知っていますかint
ロケール

5
私はfgetc(3)manページを見るようなことをしているからです。
Ignacio Vazquez-Abrams

8

bashではexec 1>&-、stdoutと呼ばれるファイル記述子を閉じるために書き込むことができます。

イグナシオがすでに言ったように、EOFはキャラクターではないので、「EOFをエコーする」方法の問題はそもそも意味がありません。文字(バイト)をエコーすることも、ファイル記述子を閉じることもできますが、EOFをエコーすることはできません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.