Go to Google Groups Home    comp.unix.programmer
Re: Writing a line based filter that exits when no input

Barry Margolin <bar...@alum.mit.edu>

In article <pan.2009.07.04.06.09...@tznvy.pbz>,
 Anand Hariharan <znvygb.nanaq.unevun...@tznvy.pbz> wrote:

> Am writing a line-based  filter a la sed or tr. What I  would like it to
> do, however, is if there is no input at start-up, it should present some
> usage information and exit.

> E.g.,

> $ MyLineFilter < TextFile # OK

> $ Some Command | MyLineFilter # OK

> $ MyLineFilter
> MyLineFilter: Did not find any text to process.  Exiting.

> $ echo $?
> 1

> $ MyLineFilter Command Line Args # Undecided what to do here ...

> Would appreciate some ideas on how to implement this.

> Currently, am writing the usage information to stderr (unconditionally),
> but the executable waits for input until it finds EOF.

In the third case, there IS input -- standard input is connected to the
terminal, and the user is supposed to type the input.

If you don't want to take input from the terminal, you can use:

if test -t
then echo $0: Did not find any text to process. Exiting. >&2
     exit 1
fi

--
Barry Margolin, bar...@alum.mit.edu
Arlington, MA
*** PLEASE post questions in newsgroups, not directly to me ***
*** PLEASE don't copy me on replies, I'll read them in the group ***