parallel bash scripts

Mark LaPierre marklapier at aol.com
Wed Mar 28 01:42:16 UTC 2012


On 03/27/2012 09:37 PM, Mark LaPierre wrote:
> Check out the redirection at the end of each command. 1>&2 redirects the
> standard out of your child command to the standard error which then
> appears in the parent shell. At the end the last & launches your command
> into a background shell and then moves on to launch the next command.
> The redirections don't care if the command ever terminates.
>
> The result is that both commands are launched and the parent shell
> terminates leaving the standard error attached to the terminal that the
> parent was launched in.
>
> On 03/27/2012 09:08 PM, bruce wrote:
>> marklapier at aol.com
>>
>> hey mark....
>>
>> what you have, appears to be pretty close to what i had... except my
>> tests never ended... the loops are infinite...
>>
>> can i do a fpaste and have you take a look at what i have?
>>
>> -btuce
>>
>>
>> On Tue, Mar 27, 2012 at 9:00 PM, Mark LaPierre<marklapier at aol.com> wrote:
>>> On 03/27/2012 05:25 PM, bruce wrote:
>>>>
>>>> hi.
>>>>
>>>> got a couple of test bash scripts.
>>>>
>>>> dog.sh, cat.sh
>>>> each script runs the underlying php in an endless loop.
>>>>
>>>> I'm trying to figure out how to run the scripts in parallel, from the
>>>> same parent shell script. something like:
>>>>
>>>> test.sh
>>>>
>>>>
>>>> where dog.sh would be :
>>>> --------------------------------
>>>> while true
>>>> do
>>>> pgrep dog
>>>> if [ $? -ne 0 ]
>>>> then
>>>> /dog.php
>>>> fi
>>>> sleep 5
>>>> done
>>>>
>>>> my current tests, run dog.sh, which runs the dog.php ... but the test
>>>> never gets to run cat.sh
>>>>
>>>> thoughts/comments...
>>>>
>>>> thanks
>>>
>>> Hey Bruce,
>>>
>>> Do you mean to run these subprograms in parallel or in series?
>>>
>>> cat.sh
>>> #! /bin/bash
>>>
>>> CAT=0
>>> until [ $CAT -eq 10 ]
>>> do
>>> echo "Inside a dog it's too dark to read. $CAT"
>>> CAT=$[$CAT + 1]
>>> sleep 2
>>> done
>>>
>>>
>>> dog.sh
>>> #! /bin/bash
>>>
>>> DOG=0
>>> until [ $DOG -eq 10 ]
>>> do
>>> echo "Next to a dog a book is man's best friend. $DOG"
>>> DOG=$[$DOG + 1]
>>> sleep 2
>>> done
>>>
>>>
>>> test.sh
>>> #! /bin/sh
>>>
>>> /home/mlapier/test/dog.sh 1>&2&
>>> /home/mlapier/test/cat.sh 1>&2&
>>>
>>>
>>> [mlapier at mushroom test]$ ./test.sh
>>> [mlapier at mushroom test]$ Next to a dog a book is man's best friend. 0
>>> Inside a dog it's too dark to read. 0
>>> Next to a dog a book is man's best friend. 1
>>> Inside a dog it's too dark to read. 1
>>> Next to a dog a book is man's best friend. 2
>>> Inside a dog it's too dark to read. 2
>>> Next to a dog a book is man's best friend. 3
>>> Inside a dog it's too dark to read. 3
>>> Next to a dog a book is man's best friend. 4
>>> Inside a dog it's too dark to read. 4
>>> Next to a dog a book is man's best friend. 5
>>> Inside a dog it's too dark to read. 5
>>> Next to a dog a book is man's best friend. 6
>>> Inside a dog it's too dark to read. 6
>>> Next to a dog a book is man's best friend. 7
>>> Inside a dog it's too dark to read. 7
>>> Next to a dog a book is man's best friend. 8
>>> Inside a dog it's too dark to read. 8
>>> Next to a dog a book is man's best friend. 9
>>> Inside a dog it's too dark to read. 9
>>>
>>>
>>>
>>> --
>>> users mailing list
>>> users at lists.fedoraproject.org
>>> To unsubscribe or change subscription options:
>>> https://admin.fedoraproject.org/mailman/listinfo/users
>>> Guidelines: http://fedoraproject.org/wiki/Mailing_list_guidelines
>>> Have a question? Ask away: http://ask.fedoraproject.org
>



More information about the users mailing list