On Wed, Nov 11, 2009 at 12:04 PM, Jeff Chua <jeff.chua.li...@gmail.com>wrote:

>
>
> On Wed, Nov 11, 2009 at 12:44 AM, Chet Ramey <chet.ra...@case.edu> wrote:
>
>> > How do you silent this one without a subshell.
>>
>> What's wrong with the approach above?
>>
>
> Nothing wrong, but can be made more efficient because "| grep" means
> another subprocess which can be eliminated if the shell silents the
> Terminate command in the first place.
>
> #!/bin/bash
> {
>         sleep 60 &
>         P=$!
>         kill $P
>         sleep 1
> } 2>&1 | grep -v " Terminated"
> exit
>


Extending the example above slighting ... now with grep means I can't see
the message real-time anymore ... if you try the example below without the
grep, it should display 0 1 2 ... every second.

#!/bin/bash
{
        for((i = 0; i <100; i++))
        do
                echo " $i\c"
                sleep 1
        done &
        P=$!
        sleep 10
        kill $P
        sleep 1
        echo ok
} 2>&1 | grep -v " Terminated"
exit


Thanks,
Jeff

Reply via email to