0
:ファイルを開いてその内容を実行したコマンドの出力にする方法は?たとえば、
/オープン/var/command_result.txt
を読み取るしたがって、各時間/var/command_result.txt
がを読み取る/開放され、その内容はsysctl -x -B 16 kern.arandom.
の実行結果であるだろう、コンテンツが異なる乱数あります。
おかげ
:ファイルを開いてその内容を実行したコマンドの出力にする方法は?たとえば、
/オープン/var/command_result.txt
を読み取るしたがって、各時間/var/command_result.txt
がを読み取る/開放され、その内容はsysctl -x -B 16 kern.arandom.
の実行結果であるだろう、コンテンツが異なる乱数あります。
おかげ
は/var/command_result.txt
名前付きパイプを作成し、開き、繰り返し、それに書き込みプロセスがありますか?これは、ファイルを読み込んでいる並行プロセスが必要な場合にはうまくいきませんが、それが逐次テストなどであれば問題ありません。
$ mknod /tmp/command_result.txt p
$ perl -we '$a=0;
while(1){
open(STDOUT,">","/tmp/command_result.txt");
print "$a\n";
$a++;
}' &
[1] 31811
$ head -1 /tmp/command_result.txt
0
$ head -1 /tmp/command_result.txt
810
$ head -1 /tmp/command_result.txt
2431
$ cat /tmp/command_result.txt | head -1
3397
あなたが見ることができるように、head
は、結果を出力する前に複数の行を読み取ります。私が頭のコマンドを非常に急速に走らせた後、私はペール側で破損したパイプのエラーで巻き上げました。トラップでその問題を解決できます。
私はこれを行う良い方法はないと思います。単純なスクリプトが受け入れられない理由はありますか? –
'ln -s/dev/urandom/var/command_result.txt'はおそらく?それはリンクを置くための奇妙な場所ですが、テキストを生成しません。 – tripleee
@ジョンムーン、再:単純なスクリプトは受け入れられません。時には、私たちがコントロールできないことに対応する必要がある場合もあります。オープン/リードするたびに、ランダムな32桁(16オクテット)の16進数にする必要があります。 – NOYB