On Thu, 28 Oct 2010 19:28:26 +0200, Polytropon <free...@edvax.de> wrote: > 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
Attention - does NOT work! Maybe my sh fu is just shhh foo. :-) #!/bin/sh [ $# -ge 1 ] && ( exec cat $@ | $0; exit ) while read data; do echo $data; done THIS is better. You can see that "if" has been removed, leaving a call to the program "test" (/bin/test is /bin/[), as long as sh does not use a built-in test or [ mechanism. The "if" is not neccessary here, as the if-then-fi construct is implicated by the use of &&. Tested. Works. -- 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"