From: Athira Rajeev
> Sent: 19 January 2023 11:31
...
> diff --git a/tools/perf/tests/shell/buildid.sh 
> b/tools/perf/tests/shell/buildid.sh
> index aaf851108ca3..43e43e131be7 100755
> --- a/tools/perf/tests/shell/buildid.sh
> +++ b/tools/perf/tests/shell/buildid.sh
> @@ -66,7 +66,7 @@ check()
>       esac
>       echo "build id: ${id}"
> 
> -     link=${build_id_dir}/.build-id/${id:0:2}/${id:2}
> +     link=${build_id_dir}/.build-id/$(echo ${id}|cut -c 1-2)/$(echo 
> ${id}|cut -c 3-)
>       echo "link: ${link}"

That is horrid, why not just use valid shell substitutions, eg:
        id_file=${id#??}
        id_dir=${id%$id_file}
        link=$build_id_dir/.build-id/$id_dir/$id_file

...
> -     check ${@: -1}
> +     check $last

Since this is the end of the shell function you can avoid the eval
by doing:
        shift $(($# - 1))
        check $1
or maybe:
        args="$*"
        check ${args##* }

Those should be ok in all posix shells.

        David

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

Reply via email to