FIFOに書き込むほとんどの例は、echo
コマンドcat
を使用してstdoutをファイルにリダイレクトすることです。例えば、
echo 'a' > /tmp/my_fifo
ただし、FIFOがまだ存在しない場合は、通常のファイルが生成されます。mkfifo
これに似ていますが、存在しない場合は書き込みが失敗することがありますか?つまり、次のようになります。
echo 'a' | write-to-existing-file /tmp/my_fifo
ベストアンサー1
BASHマニュアルによると:
-p file
True if file exists and is a named pipe (FIFO).
だから:
if [[ -p /tmp/my_fifo ]]; then
# commands to execute
fi
質問にはラベルがあります。強く打つ。コンテキストでは[[
、使用法は]]
BASHにのみ適用されます。 (接線的にzshおよびKornシェル[[
も]]
使用できます。)バッシュFAQ/031。すべてのPOSIXシェルで実行される[
移植可能なスクリプトを使用して作成する必要があります。]