如何建立一個偽文件,每次讀取命令時都會從命令中獲取其內容

如何建立一個偽文件,每次讀取命令時都會從命令中獲取其內容

我想創建一些類似文件的東西(可以像普通文件一樣讀取),每次讀取它時,它都會從命令獲取輸出。

例如,如果我這樣做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

相關內容