I am trying to read from a named pipe using bash, if nothing is in the fifo buffer, repeat the whole process. The -t option of the read comman appears not to work and the following code snippet waits forever for data from the pipe. mkfifo -m 666 ~/fifo while true do while read -t 5 data do echo "data is ($data)" done <~/fifo echo "read again" done and yet, man bash states under the read command the following: -t timeout Cause read to time out and return failure if a complete line of input is not read within timeout seconds. This option has no effect if read is not reading input from the terminal or a pipe. surely, I am not reading from a terminal but I am reading from a pipe, because the type of the file is a pipe # ls -la ~/fifo prw-rw-rw- 1 root root 0 Jan 8 21:44 /root/fifo Installation: SuSE Linux V9.2, Pentium architecture. How do I do it correctly? Thanks Peter