FIFOへの書き込みについて私が目にする例のほとんどは、echo
またはcat
コマンドを使用して、stdoutをファイルにリダイレクトすることを示しています。
echo 'a' > /tmp/my_fifo
ただし、FIFOがまだ存在しない場合は通常のファイルが作成されます。mkfifo
に類似したものはありますが、存在しない場合は書き込みに失敗しますか?は、次のようなものです。
echo 'a' | write-to-existing-file /tmp/my_fifo
BASHマニュアルによると:
-p file
True if file exists and is a named pipe (FIFO).
そう:
if [[ -p /tmp/my_fifo ]]; then
# commands to execute
fi
質問にはタグbashがあります。コンテキストでは、[[
および]]
の使用法はBASHに固有です。 (正直なところ、[[
と]]
はzshとKornシェルでも機能します。) BashFAQ/031 を参照してください。ポータブルスクリプトは、すべてのPOSIXシェルで機能する[
および]
を使用して作成する必要があります。