diff --git a/ShellCheck/Analytics.hs b/ShellCheck/Analytics.hs index c1d23e8..19fe382 100644 --- a/ShellCheck/Analytics.hs +++ b/ShellCheck/Analytics.hs @@ -1177,6 +1177,7 @@ prop_checkSingleBracketOperators1 = verify checkSingleBracketOperators "[ test = prop_checkSingleBracketOperators2 = verify checkSingleBracketOperators "[ $foo > $bar ]" prop_checkSingleBracketOperators3 = verifyNot checkSingleBracketOperators "[[ foo < bar ]]" prop_checkSingleBracketOperators5 = verify checkSingleBracketOperators "until [ $n <= $z ]; do echo foo; done" +prop_checkSingleBracketOperators6 = verifyNot checkSingleBracketOperators "[ $foo '>' $bar ]" checkSingleBracketOperators _ (TC_Binary id typ op lhs rhs) | typ == SingleBracket && op `elem` ["<", ">", "<=", ">="] = err id 2073 $ "Can't use " ++ op ++" in [ ]. Escape it or use [[..]]." diff --git a/ShellCheck/Parser.hs b/ShellCheck/Parser.hs index 1481d1f..889ab50 100644 --- a/ShellCheck/Parser.hs +++ b/ShellCheck/Parser.hs @@ -447,7 +447,7 @@ readConditionContents single = c <- oneOf "'\"" s <- anyOp char c - return s + return $ escaped s anyOp = flagOp <|> flaglessOp <|> fail "Expected comparison operator (don't wrap commands in []/[[]])"