명명된 파이프가 존재하는지 테스트하기 위해 -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