From: Jiri Olsa
> Sent: 12 January 2021 09:30
> 
> On Fri, Jan 08, 2021 at 04:47:12PM +0900, Namhyung Kim wrote:
> > It was using some bash-specific features and failed to parse when
> > running with a different shell like below:
...

You don't need a temporary file, one option is:

> > index 249dfe48cf6a..e2c7ac4ed91d 100755
> > --- a/tools/perf/tests/shell/stat+shadow_stat.sh
> > +++ b/tools/perf/tests/shell/stat+shadow_stat.sh
...
> >     perf stat -a -A --no-big-num -e cycles,instructions sleep 1  2>&1 | \
> >     grep ^CPU | \
> >     while read cpu num evt hash ipc rest
> >     do
...
> > +           if [ "$evt" = "cycles" ]; then
> > +                   echo $cpu $num >> $results

                        results="$results $cpu:$num"

> >                     continue
> >             fi
> >
> >             # skip if no cycles
> > -           local cyc=${results[$cpu]}
> > -           if [[ -z $cyc ]]; then
> > +           local cyc=$(grep $cpu $results | cut -d' ' -f2)

                cyc=${results##* $cpu:}
                cyc=$(cyc%% *}

> > +           if [ -z "$cyc" ]; then
> >                     continue
> >             fi

I can't remember when 'local' was invented.
You may find shells that don't support it.
In any case, since this is a small standalone file I'd
remove them just in case.

        David

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, 
UK
Registration No: 1397386 (Wales)

Reply via email to