Quoth Karl Vogel on Thursday, 28 October 2010: > >> On Thu, 28 Oct 2010 09:17:12 -0700, > >> Chip Camden <sterl...@camdensoftware.com> said: > > C> Perhaps someone with more sh fu can transform the 'if' paragraph into a > C> one-liner at least. When I tried to do so, I got an unexpected ; error. > > Try this: > > #!/bin/sh > test $# -ge 1 && cat $@ | exec $0 && exit 0 > > IFS=$'\n' > while read data; do > echo "$data" > done > exit 0 > > Resetting IFS is only necessary if you want to preserve whitespace in > each line. Putting $data in quotes prevents any shell metacharacters > from being expanded. > > -- > Karl Vogel I don't speak for the USAF or my company > Sign in a New York drugstore: "We dispense with accuracy" > _______________________________________________ > 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"
Much better than my latest version, which always invokes $0. As an alias: alias inargs='[ $# -ge 1 ] && cat $@ | exec $0 && exit' #!/bin/sh inargs while read data; do echo $data; done -- Sterling (Chip) Camden | sterl...@camdensoftware.com | 2048D/3A978E4F http://camdensoftware.com | http://chipstips.com | http://chipsquips.com
pgpRPZvoCdAhv.pgp
Description: PGP signature