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 셸에서 실행되는 [
이식 가능한 스크립트를 사용하고 작성 해야 합니다 .]