名前付きパイプが存在するかどうかをテストするために-fフラグを使用してみました。
if [[ ! -f "$fifo" ]]; then
echo 'There should be a fifo.lock file in the dir.' > /dev/stderr
return 0;
fi
このチェックは間違っているようです。もしそうなら、名前付きパイプはファイルではなく他のものかもしれません。
答え1
-p
ファイルの種類が次のとおりであることを確認するには、構文を使用する必要があります。名前付き管路。標準テスト[
(POSIX互換)および拡張テスト演算子[[
(bash / zsh固有)で動作します。
if [[ -p "$fifo" ]]; then
printf '%s is a named pipe' "$fifo"
fi
man
バッシュページから
-p
file
もし本当だ
file
存在し、名前付きパイプ(FIFO)。
または、ファイル名を表示せずにタイプ情報のみを印刷するfile
には、withコマンドを使用します。 POSIXと互換性がない可能性-b
があります-b
if [ $(file -b "$fifo") = "fifo (named pipe)" ]; then
printf '%s is a named pipe' "$fifo"
fi
いいえ-b
、人々ができます
type=$(file "$fifo")
if [ "${type##*: }" = "fifo (named pipe)" ]; then