ファイルを読むのではなく、どのようにスクリプトを実行できますか?

ファイルを読むのではなく、どのようにスクリプトを実行できますか?

参照時に(読み取り用に開くとき)ファイルの内容を返すのではなく、スクリプトまたは実行可能ファイルの実行結果を返すようにファイルを設定できますか?

stdoutとパイプを使用してコマンドラインを介してこれを行うことができますが、コマンドラインからスクリプトを参照することは必ずしも必要ではありません。

答え1

これを直接行うことはできません。あなたができることは(あなたが言ったように)使用することです標準出力そしてパイプ。理想的でも特別なエレガントでもないので、要件と提案されたソリューションをもう一度考えてみる必要があります。

問題のファイルが呼び出されており、date現在の日時に関するメッセージを印刷したいとします。

# Create the "file" as a FIFO (a pipe)
mkfifo date

# Start the background process that always ensures there's data in the FIFO
( while :; do ( echo "The current date/time is $(date)" ) >date; done ) &

# Now read the "file" that's actually a pipe
date        # Date/time now
cat date    # Content from the "file" that's actually a pipe
date        # Date/time now, again

# And a minute or so later, try that again, just to show the effect of a
# repeated read...
cat date

関連情報