On Thu, 28 Oct 2010 09:17:12 -0700, Chip Camden <sterl...@camdensoftware.com> 
wrote:
> Perhaps someone with more sh fu can transform the
> 'if' paragraph into a one-liner at least.  When I tried to do so, I got an
> unexpected ; error.

Not tested, but this should do the trick:

        #!/bin/sh
        if [ $# -ge 1 ] && ( exec cat $@ | $0; exit )
        while read data; do echo $data; done

The ; denotes a line break, means that you can use EITHER ; or
a newline. In the original construct, 

        if [ $# -ge 1 ]; then
                exec cat $@ | $0
                exit
        fi

you can change the ; into

        if [ $# -ge 1 ]
        then
                exec cat $@ | $0
                exit
        fi

which is often seen in scripts. In this case, no ; is required (or
even allowed). The same rule applies for the while/do/done iterator.


-- 
Polytropon
Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...
_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"

Reply via email to