On Thu, Jun 10, 2010, Ori Idan wrote about "cat command with timeout": > I have to read lines from serial port, I thought to read them using 'cat' > however, since the other unit connected to the serial port, might > malfunction and not send anything, I need a timeout to stop reading after > few seconds. > Does someone know of an alternative to cat with timeout?
It sounds like (but correct me if I'm wrong) that what you're looking for is't "cat", but rather a way to read a single line in a shell-script, but give up after a timeout when you didn't get any line. The command for this is "read", and bash has a -t parameter: read -t 4 line reads a single line from the standard input (redirect it with "<" from the serial port, if you want) into the variable $line, but if in 4 seconds it doesn't get a line, it gives up. If you really want cat with a timeout, you can simulate one with a script. For example (I did *not* test this): #!/bin/sh cat /dev/... & pid=$! sleep 5 kill $pid But I'm not sure how exactly this makes sense (when reading from the serial port, basically cat will never finish, and will always be killed exactly after 5 seconds - even if a line appeared after just 1 second). -- Nadav Har'El | Thursday, Jun 10 2010, 28 Sivan 5770 n...@math.technion.ac.il |----------------------------------------- Phone +972-523-790466, ICQ 13349191 |Time is the best teacher. Unfortunately http://nadav.harel.org.il |it kills all its students. _______________________________________________ Linux-il mailing list Linux-il@cs.huji.ac.il http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il