명명된 파이프가 있는지 테스트하기 위해 -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
Bash 페이지 에서
-p
file
다음과 같은 경우 참
file
존재하며 명명된 파이프(FIFO)입니다.
또는 파일 이름 없이 유형 정보만 인쇄하려면 file
명령과 함께 사용하십시오. 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