[LTP] [PATCH] lib/tst_test.sh: Detect quoted parameters correctly
Petr Vorel
pvorel@suse.cz
Wed May 9 13:31:41 CEST 2018
> If we assign "$@" containing quoted parameters to TST_ARGS variable and pass
> the variable into getopts, only the first number from quoted parameters can be
> processed. "$@" seems to be treated as an array by default, and declaring
> TST_ARGS as an array could fix this issue.
> You can reproduce the issue by the folliwng url:
> [1] https://lists.linux.it/pipermail/ltp/2018-May/008042.html
> Signed-off-by: Xiao Yang <yangx.jy@cn.fujitsu.com>
...
> - while getopts "hi:$TST_OPTS" name $TST_ARGS; do
> + while getopts "hi:$TST_OPTS" name "${TST_ARGS[@]}"; do
...
> - TST_ARGS="$@"
> + TST_ARGS=("$@")
Thanks for your patch.
NACK. Why: arrays are bashism :(.
IMHO this doesn't have a solution which would be POSIX compliant
I recommend testing shell related changes with checkbashisms script from Debian [1].
Also testing it on dash can reveal bashisms (change /bin/sh symlink from bash to dash as
some distros have as default).
Kind regards,
Petr
[1] https://anonscm.debian.org/cgit/collab-maint/devscripts.git/plain/scripts/checkbashisms.pl
More information about the ltp
mailing list