From d830a36bc88c84f5d5b24e226aab39fd4197f057 Mon Sep 17 00:00:00 2001 From: Vidar Holen Date: Sun, 25 May 2014 12:04:18 -0700 Subject: [PATCH] Check for globs in test, e.g. [[ -e file* ]] --- ShellCheck/Analytics.hs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/ShellCheck/Analytics.hs b/ShellCheck/Analytics.hs index d2ccac3..a42f3c4 100644 --- a/ShellCheck/Analytics.hs +++ b/ShellCheck/Analytics.hs @@ -200,6 +200,7 @@ nodeChecks = [ ,checkSuspiciousIFS ,checkAliasesUsesArgs ,checkShouldUseGrepQ + ,checkTestGlobs ] @@ -2800,3 +2801,10 @@ checkShouldUseGrepQ params t = T_Pipeline _ _ cmds -> return cmds _ -> fail "unknown" isGrep = isSuffixOf "grep" + +prop_checkTestGlobs1 = verify checkTestGlobs "[ -e *.mp3 ]" +prop_checkTestGlobs2 = verifyNot checkTestGlobs "[[ $a == *b* ]]" +checkTestGlobs params (TC_Unary _ _ op token) | isGlob token = + err (getId token) 2144 $ + op ++ " doesn't work with globs. Use a for loop." +checkTestGlobs _ _ = return ()