Date: Fri, 21 Sep 2001 14:50:29 -0400 From: "Jason M. Felice" To: bash-maintainers@gnu.org, chet@po.cwru.edu Subject: Bash co-processes functions Message-ID: <20010921145029.A6093@argo.eraserhead.net> Mime-Version: 1.0 Attached to this message you will find coprocess.bash and coshell.bash. Here's a brief synopsis of use: coprocess open telnet localhost while coprocess read il ; do echo "$il" case "$il" in *ogin:*) coprocess print 'user' ;; *ord:*) echo 'pass' |coprocess print --stdin ;; *$ *) coprocess print 'exit' break ;; esac done coprocess close And here's an example of the coshell function: coshell open ssh -l root otherbox coshell eval hostname coshell ls -l if coshell test -d /tmp ; then echo 'otherbox has a /tmp!' ; fi coshell sendfile /var/lib/upgrade.rpm /tmp/test.rpm || exit $? coshell eval rpm -ivh /tmp/test.rpm || exit $? coshell eval rm -f /tmp/test.rpm || exit $? coshell close exit 0 There are a few minor issues that I'd like to work out, but it works well enough for me ;-) The issues are: - Shell quoting issue with 'coshell eval' commands - need to somehow re-quote words. - Interactive commands hang 'coshell eval', tried redirecting in