Message ID | 20180816001350.7516-1-mforney@mforney.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | kbuild: Add a space after `!` to prevent parsing as file pattern | expand |
2018-08-16 9:13 GMT+09:00 Michael Forney <mforney@mforney.org>: > Some shells use !(pattern|...|pattern) to match file names not > containing the specified patterns. This may result in output like > > $ ./scripts/clang-version.sh gcc > ./scripts/clang-version.sh[18]: COPYING: not found > printf: %d __clang_major__: conversion error > printf: %d __clang_minor__: conversion error > printf: %d __clang_patchlevel__: conversion error > 00000 > $ > > and set CONFIG_CLANG_VERSION to the invalid value '00000'. > > POSIX says[0] > > If the pipeline begins with the reserved word ! and command1 is a > subshell command, the application shall ensure that the ( operator at > the beginning of command1 is separated from the ! by one or more > <blank> characters. The behavior of the reserved word ! immediately > followed by the ( operator is unspecified. > > So, just add a <blank> to prevent this. > > [0] http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_09_02 > > Signed-off-by: Michael Forney <mforney@mforney.org> Applied to linux-kbuild. Thanks! > --- > scripts/clang-version.sh | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/scripts/clang-version.sh b/scripts/clang-version.sh > index dbf0a31eb111..e65fbc3079d4 100755 > --- a/scripts/clang-version.sh > +++ b/scripts/clang-version.sh > @@ -12,7 +12,7 @@ > > compiler="$*" > > -if !( $compiler --version | grep -q clang) ; then > +if ! ( $compiler --version | grep -q clang) ; then > echo 0 > exit 1 > fi > -- > 2.17.1 >
diff --git a/scripts/clang-version.sh b/scripts/clang-version.sh index dbf0a31eb111..e65fbc3079d4 100755 --- a/scripts/clang-version.sh +++ b/scripts/clang-version.sh @@ -12,7 +12,7 @@ compiler="$*" -if !( $compiler --version | grep -q clang) ; then +if ! ( $compiler --version | grep -q clang) ; then echo 0 exit 1 fi
Some shells use !(pattern|...|pattern) to match file names not containing the specified patterns. This may result in output like $ ./scripts/clang-version.sh gcc ./scripts/clang-version.sh[18]: COPYING: not found printf: %d __clang_major__: conversion error printf: %d __clang_minor__: conversion error printf: %d __clang_patchlevel__: conversion error 00000 $ and set CONFIG_CLANG_VERSION to the invalid value '00000'. POSIX says[0] If the pipeline begins with the reserved word ! and command1 is a subshell command, the application shall ensure that the ( operator at the beginning of command1 is separated from the ! by one or more <blank> characters. The behavior of the reserved word ! immediately followed by the ( operator is unspecified. So, just add a <blank> to prevent this. [0] http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_09_02 Signed-off-by: Michael Forney <mforney@mforney.org> --- scripts/clang-version.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)