[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Running a music player via cron



On Sat, Sep 28, 2019 at 07:13:32AM +0200, Jean-Philippe MENGUAL wrote:
> > You might want to check by adding this part to your script (before the
> > part "echo CTRL+C to..."):
> > 
> > 	proc=`fuser /dev/dsp| awk "{print $2}"`
> > 	if [ -n ${proc+x} ]; then
> > 		ps auxww | awk '($2 == '$proc'){print $0}'
> > 	else
> > 		echo "no process is obtaining /dev/dsp"
> > 	fi
> > 
> > and it will print which process is obtaining the /dev/dsp
> 
> hmmm I get:
> awk: line 1: syntax error at or near )

Yeah, the quoting is rather messed up there.  In fact, the whole command
is rather suspect, for several reasons.  Best to discard it.

I believe the intent was to do something like this:

if pids=$(fuser /dev/dsp 2>/dev/null); then
    echo "the following processes are using /dev/dsp:"
    for pid in $pids; do
        ps -o pid= -o args= -p "$pid"
    done
else
    echo "no processes are using /dev/dsp"
fi

One may adjust the ps -o options as desired.

(I wrote this for sh, not bash.  Had I written it for bash, I would have
used arrays and a dynamically generated single ps command, instead of
an unquoted list-in-a-string and multiple ps commands.)


Reply to: