cc: [email protected]
Subject: Re: [ast-users] Best way to parameterize the backgrounding of a command
--------

> Hi everyone,
> 
> I want to pass an option flag to a process startup script to tell it to run
> one particular program within the script in the background or not.
> 
> I discovered a long time ago that I cannot simply set
> something like BgOpt='&' and stick it at the end of the
> target command within the script -- it just doesn't jive
> with the deep magic of how sh/ksh scans and parses a command line.
> In the past I have simply resigned myself to using an if-then-else
> construct with dupe copies of the entire command, one with the '&'
> at the end, and one without:
> 
> if [[ $BgFlag == y ]]
> then
>     myprogram options_and_args &
> else
>     myprogram options_and_args
> fi
> 
> I never liked the duplication, but I like working code more, so I have 
> lived with it.
> But now I have a really long command to run, and duplicating it just seems
> too prone to maintenance errors.
> I suppose I could wrap it in a function and put the function in the above
> if-then-else, but since I have always wondered if there was a single 
> line solution
> for this task, I have finally decided to write this up and put it out there.
> 
> One last point I should mention: this might have to be run in a /bin/sh 
> (Bourne) script,
> so I need to know if any solution has a portability issue.
> 
> Regards,
>   Mario DeFazio
> 
> 

Why not do

        your_long_command & pid
        if [[ ! $BgFlag  ]] && wait $pid        

You could use eval, but then you need to get the quoting done correctly.

David Korn
[email protected]
_______________________________________________
ast-users mailing list
[email protected]
https://mailman.research.att.com/mailman/listinfo/ast-users

Reply via email to