wiml@blake.acs.washington.edu (William Lewis) (11/17/89)
I've written a shell script (in C shell; it's a .login script) that
invokes a couple of background pipes. The pipes work fine but when they
finish, they print a
[1] Done ( blah blah very long pipe here ... )
message. Is there any way to get rid of this message? Preferably a way
that would also get rid of the
[1] 5628
message as well, although this is less important as it's short, unobtrusive,
always in the same place, etc.
Any help appreciated =8) (The FM for csh doesn't seem to say anything
about this...)
--- phelliax
--
wiml@blake.acs.washington.edu (206)526-5885 Seattle, Washingtonmaart@cs.vu.nl (Maarten Litmaath) (11/17/89)
In article <4491@blake.acs.washington.edu> wiml@blake.acs.washington.edu (William Lewis) writes:
\
\ I've written a shell script (in C shell; it's a .login script) that
\invokes a couple of background pipes. The pipes work fine but when they
\finish, they print a
\
\ [1] Done ( blah blah very long pipe here ... )
\
\ message. Is there any way to get rid of this message? Preferably a way
\that would also get rid of the
\
\ [1] 5628
\
\ message as well, [...]
You could put the pipelines in a separate script:
% cat .login
...
background_script < /dev/null >& /dev/null
...
% cat background_script
#!/bin/csh -f
pipeline_1 &
pipeline_2 &
...
If your `background_script' could be written just as easily in Bourne shell
language:
% cat background_script
#!/bin/sh
(
pipeline_1 &
pipeline_2 &
...
) &
...which gives control back to .login faster.
--
[...] like a roving gang. "Ah, here's a NEW almost-empty group to post train
schedules and core dumps in!" (Joe Buck) | maart@cs.vu.nl, mcsun!botter!maartwiml@blake.acs.washington.edu (William Lewis) (11/18/89)
Last night I poasted a question, asking how to quietly invoke
background processes in a CSH script. This morning I already had three
answers (two the same), so I'm posting this to hopefully stave
off a flood. The two answers were:
1. Put the background stuff in a separate script, and redirect
stdout from the shell.
2. (better, IMHO) Use parentheses to put the pipeline in a
subshell (?), and put the '&' INSIDE the parentheses. Works
like a charm! Ie, ( cat | awk | grep & ) instead of
( cat | awk | grep ) &.
Thanks for all the fast responses...
--- phelliax
--
wiml@blake.acs.washington.edu (206)526-5885 Seattle, Washingtonmerlyn@iwarp.intel.com (Randal Schwartz) (11/19/89)
In article <4491@blake.acs.washington.edu>, wiml@blake (William Lewis) writes: [that he wants to launch processes from csh without termination notify...] | Any help appreciated =8) (The FM for csh doesn't seem to say anything | about this...) Right. Cause the brain-dead csh was meant for *interactive* use, and expects some human to *want* to know that the process got done. Stuff /bin/sh <\EOF your process here & EOF into your .login. If you need to have your process immune to SIGHUP, SIGTERM, and the like, do something like: /bin/sh <\EOF trap '' 1 2 3 15 your process here & EOF Just another /bin/sh hacker, -- /== Randal L. Schwartz, Stonehenge Consulting Services (503)777-0095 ====\ | on contract to Intel's iWarp project, Hillsboro, Oregon, USA, Sol III | | merlyn@iwarp.intel.com ...!uunet!iwarp.intel.com!merlyn | \== Cute Quote: "Welcome to Oregon... Home of the California Raisins!" ==/