読み取られるたびにコマンドから内容を取得する疑似ファイルを作成するにはどうすればよいでしょうか

読み取られるたびにコマンドから内容を取得する疑似ファイルを作成するにはどうすればよいでしょうか

ファイルのようなもの(一般的なファイルのように読み取ることができるもの)を作成し、読み取るたびにコマンドから出力を取得したいと考えています。

たとえば、 を実行するとecho $RANDOM > test、 を呼び出すことができcat test、生成された乱数が表示されます。

ただし、呼び出すたびにcat test(または他の方法で読み取るたびに)、ジェネレータ コマンドが呼び出される必要があります (echo $RANDOMこの例では ですが、実際には 1kb 程度のさらに多くのデータが生成されます)。

最善策は、何らかのデバイス特殊ファイル/デバイス ドライバーを作成することだと思います。必要なのは、確かに /dev/zero または /dev/random に似ています。これを簡単に作成することは可能ですか? 標準の gnu/sh ライブラリを使用するのが理想的でしょうか?

ヒントがあればよろしくお願いします!

答え1

名前付きパイプ機能を使用する:

mkfifo myfancypipe;
while true; do bash -c 'echo $RANDOM' > myfancypipe; done

次に別の端末に移動し、次のように呼び出します。

cat myfancypipe

情報は以下のサイトから入手できますecho $RANDOM

関連情報