Commit Graph

432 Commits

Author SHA1 Message Date
Vidar Holen f594f01d35 Add warnings about redirections without commands. 2016-12-17 15:03:52 -08:00
Vidar Holen 6ccb7e9129 Fix 'for file; do ..' counting $file as a safe variable. 2016-12-17 12:55:14 -08:00
Vidar Holen 105b09792c Fix SC095 about < /dev/null when using ssh -n 2016-12-17 12:41:00 -08:00
Vidar Holen 46e47dad45 Don't quote source in 2041 and 2043. 2016-12-10 22:41:25 -08:00
Vidar Holen fee6c94d40 Alias ash to dash with warning. 2016-12-10 10:57:01 -08:00
MortimerMcMire315 0897ab7092 Add handling for special characters in parameter substitutions.
Fixes koalaman/shellcheck#562. Special characters inside braces are
parsed into T_ParamSubSpecialChar instead of T_Literal so that they are
not flagged in the function checkInexplicablyUnquoted when sandwiched
between double quotes.
2016-11-28 16:06:02 -05:00
Vidar Holen 08f7ff37c5 Some cleanup and refactoring. 2016-11-12 15:51:36 -08:00
Vidar Holen 619b6c42f3 Improve parsing of fd close/duplicate redirections. 2016-10-21 11:31:58 -07:00
Vidar Holen 6b62b5bf7e Don't warn about [ a '>' b ] needing escapes. 2016-10-01 14:54:28 -07:00
Vidar Holen 1a8e34bfea Don't suggest grep -c when used with -o 2016-10-01 13:26:53 -07:00
Vidar Holen 4fc4899803 Consider ${foo:=bar} an assignment. 2016-09-24 19:01:13 -07:00
Vidar Holen cd4896192c Don't consider ~foo constant. 2016-09-24 15:32:44 -07:00
Vidar Holen 6a4b86cbea Fix warning for >& 2016-09-24 14:08:00 -07:00
Vidar Holen fe2398edc9 Warn about >& in sh 2016-09-24 14:03:54 -07:00
Vidar Holen 3a7dc86de1 Don't warn about unused vars with readonly -f 2016-09-24 13:42:20 -07:00
Vidar Holen a90b6d14b3 Count b as a reference in ${a:b} 2016-09-05 14:01:53 -07:00
Vidar Holen 5a46eeb09a Allow `#inline comments` without SC2046. 2016-09-05 12:38:35 -07:00
Vidar Holen 47a7065a7a Add style note for 'mycmd; if [ $? -eq 0 ]'. 2016-08-28 20:54:08 -07:00
Vidar Holen 13a2070a32 Support multidimensional KSH arrays and warn in Bash. 2016-08-06 18:40:08 -07:00
Vidar Holen 6a71ff6f46 Don't suggest removing $ in (( ${COLUMNS-80} )) 2016-07-30 10:42:33 -07:00
Vidar Holen 42f7479fb8 Don't warn about missing shebang when using directives. 2016-07-01 22:02:06 -07:00
Vidar Holen 50084c06c5 Don't warn when $(seq) is used unquoted. 2016-07-01 21:26:46 -07:00
Vidar Holen 07fd5724b8 Recognize declare -A statements when value is inlined. 2016-06-26 14:57:52 -07:00
Vidar Holen 3e5ecaa262 Parse indices of associative arrays properly 2016-06-26 14:39:49 -07:00
Vidar Holen 85e69f86eb In (( x = y )), logic to not reference x also grabbed y 2016-05-24 09:12:47 -07:00
Vidar Holen 1d04754b37 Don't warn about a && b || c in if/while/until. 2016-05-14 17:14:32 -07:00
Vidar Holen 13ff0a7432 Warn when arrays are appended/assigned scalars. 2016-05-14 16:24:18 -07:00
Vidar Holen 40136fe249 Fix parsing of [[ a =~ {$var} ]] 2016-05-08 12:19:25 -07:00
Vidar Holen 86999ded1f Improve 'let' parsing, trigger unused var for ((a=1)) 2016-04-30 13:45:39 -07:00
Vidar Holen 7551a241ad Add missing warnings for {$i..10} similar to {1..$i} 2016-04-23 16:00:56 -07:00
Vidar Holen db0c8c2dc9 Separate out command specific checks.
The checks use a better interface and give
an overall speed boost of 10%.
2016-04-10 17:01:40 -07:00
Vidar Holen 9911470d67 Don't warn about LINENO in dash 2016-04-09 09:56:07 -07:00
Vidar Holen a5821c3a4d s/sh/bash/ in SC2176 because of posix guarantees. 2016-03-19 16:47:55 -07:00
Vidar Holen c91083354f Warn about timing pipelines and compound commands in sh/dash. 2016-03-19 16:14:55 -07:00
Vidar Holen 944313c6ba Directives after the shebang now apply to the entire script.
Also adds support for the shell= directive.
2016-03-08 20:16:16 -08:00
Vidar Holen 6af1aeb259 Add warning for multi-digit FDs in posix/dash. 2016-03-08 17:37:12 -08:00
Vidar Holen 7e75d12ce1 Improve expansion in single quote false positives. 2016-01-26 19:57:18 -08:00
Vidar Holen 7d278c3ca1 Ignore SC2055 if rhs of either != is a glob. 2016-01-26 19:12:47 -08:00
Vidar Holen 5f1175fb58 Add special case warning to quote in eval echo {1..$n} 2016-01-25 18:46:55 -08:00
Vidar Holen f9909504dd Make SC2174 only trigger for nested directories. 2016-01-09 14:24:31 -08:00
koalaman fa4cefda9d Merge pull request #572 from eatnumber1/mkdir
Add a warning when you mkdir with both -p and -m.
2016-01-09 13:58:53 -08:00
Russell Harmon f2f6c66902 Add a warning when you mkdir with both -p and -m.
When using -p, parent directories will not be created with the mode
specified with -m and will instead be created using the default behavior
controlled by umask.
2016-01-08 14:15:11 -08:00
Vidar Holen 33ab998b02 Don't warn about quoting for [ -v var ] 2015-12-12 15:47:35 -08:00
Vidar Holen d00ca0c283 Fix/generalize message for SC2070. 2015-12-05 17:29:06 -08:00
Vidar Holen 8bc98d89a7 Let SC2094 ignore echo/printf/sponge. 2015-12-05 16:50:11 -08:00
Vidar Holen 8ec87d6655 Mention -- as alternative to ./* in SC2035 2015-12-05 13:45:56 -08:00
Vidar Holen c3df2bf761 Don't warn about deprecated `` when just used for comments. 2015-12-05 13:33:39 -08:00
Vidar Holen 1a5296659b Properly handle escaped double quotes in quoted backtick expressions. 2015-11-01 12:30:33 -08:00
Vidar Holen a66ee2967c Trap warnings for kill/stop, non-XSI ints, "sig"-prefix and casing. 2015-10-31 17:36:24 -07:00
Vidar Holen d985380f48 Consider "echo $(<file)" a bashism, and don't warn about UUOE. 2015-10-31 14:48:08 -07:00
Vidar Holen 6739c4a729 Count declare -p as a variable reference. 2015-10-31 14:16:45 -07:00
Vidar Holen 7415c9dcb7 Warn about non-posix function names like x-y 2015-10-31 13:53:17 -07:00
Vidar Holen 48fd793581 Update getFlag function to also return non-flags. 2015-10-27 22:07:29 -07:00
Vidar Holen 8f5f91f041 Warn about ]] with no corresponding [[. 2015-10-17 10:31:14 -07:00
Vidar Holen 8d9d4533c3 Don't trigger constant checks for -ot/-ef/-nt 2015-10-17 09:28:29 -07:00
Vidar Holen 4ce916ec1d Include bash builtin arrays in SC2128. 2015-10-14 12:31:09 -07:00
Vidar Holen b9cb040128 Account for dereferencing for numerical ops in [[ ]]. 2015-10-14 11:11:17 -07:00
Vidar Holen 2488be7298 Don't warn about undefined HOSTNAME if it's being assigned. 2015-10-14 09:21:21 -07:00
Vidar Holen f77821625c Add dash as a first class supported shell. 2015-10-13 11:37:50 -07:00
Vidar Holen 1eece5b2ee Add warning about local in sh or not in bash functions. 2015-10-10 20:48:52 -07:00
Vidar Holen 58d45e3fa4 Warn about non-posix %q and flags for printf. 2015-10-10 20:14:17 -07:00
Vidar Holen 5aaa1a7d9a Split SC2165 messages into separate codes (2167). 2015-10-10 19:26:14 -07:00
Vidar Holen 4172722167 Don't warn about quoted rhs of =~ when not a regex. 2015-10-03 15:21:57 -07:00
Vidar Holen 485593da2c Don't warn about disrespected quotes in ${#var}. 2015-10-01 18:56:45 -07:00
Vidar Holen 1181c6b3af Warn about ${!var} in POSIX mode. 2015-10-01 18:34:09 -07:00
Vidar Holen ee181cfc43 Don't warn about comparisons when redirecting stderr for test. 2015-10-01 18:19:47 -07:00
Vidar Holen 5467a0f1d9 Account for set -o errexit and #!/bin/bash -e for unchecked cd. 2015-09-28 18:52:03 -07:00
Vidar Holen 3fc77d94ec Warn about [ -n foo ] when foo is entirely constant. 2015-09-28 18:46:32 -07:00
Vidar Holen 0f00de80fd Support {n}>&1 named file descriptors. 2015-09-05 09:48:34 -07:00
Vidar Holen bf9297e2a5 Parse ksh ${ ..; } expansions. 2015-09-03 20:26:02 -07:00
Vidar Holen 10276c878d Don't consider ${!os*} reference of 'os' 2015-08-22 13:55:17 -07:00
Vidar Holen ccb6bf1ed5 Don't warn about uuoc for cat -n and similar. 2015-08-16 18:26:38 -07:00
Vidar Holen f31c8bd3a3 Preliminary support for sourced files. 2015-08-16 17:18:51 -07:00
Vidar Holen 0dd61b65d8 Moved the various AST convenience functions to a separate module. 2015-08-16 12:53:23 -07:00
Vidar Holen 07747b30fb Warn about undefined behavior of test -a and -o. 2015-08-15 22:42:06 -07:00
Vidar Holen 26d16eb8ad Avoid new 2129 warnings when disabling the first one. 2015-08-15 14:23:45 -07:00
Vidar Holen 54b2d14847 Stop 2164 and 2103 about 'cd foo || exit' from overlapping. 2015-08-15 14:10:40 -07:00
Vidar Holen f653362b18 Warn about bashism [^bar]. 2015-08-15 13:50:09 -07:00
Vidar Holen 67cfcfd206 Separated formatters into multiple files. 2015-08-15 12:51:13 -07:00
Vidar Holen 72eeafe002 Some cleanup to make room for future improvements. 2015-08-15 09:34:19 -07:00
Vidar Holen 6d9e8472e6 Less confusing message for SC2140 2015-08-02 19:55:47 -07:00
Chad Brewbaker 95cfd87589 cleanup 2015-07-23 12:51:38 -05:00
Vidar Holen 0a1beb883f Don't warn about unquoted :+ expansions. 2015-07-19 12:28:31 -07:00
Vidar Holen 83adcba88e Warn when nested loops have conflicting variable names. 2015-07-19 11:30:57 -07:00
Vidar Holen 35fb5073f4 Fixed cd foo; bar; cd -; check not trigger on top level 2015-07-18 19:58:09 -07:00
Vidar Holen de59c3586b Warn about 'cd' when not used as part of a conditional 2015-07-18 19:37:58 -07:00
Vidar Holen 8894333556 Warn about 'export $foo' 2015-07-18 13:23:36 -07:00
Vidar Holen b1843c520f Warn when using read without -r 2015-07-18 12:30:08 -07:00
Vidar Holen d406ba9950 Special case messages for [ true ] and false/0/1 2015-07-18 11:47:28 -07:00
Vidar Holen 7929a9dbba Makes literal check work for args to -z and -n 2015-07-18 11:08:42 -07:00
Vidar Holen 7e84ad031f Warn about [ foo ] when "foo" is non-constant with constant parts. 2015-07-18 09:56:58 -07:00
Vidar Holen 7eef12102b Make 2077 point to the = in [ foo=bar ] 2015-07-18 09:22:52 -07:00
Vidar Holen 3d83b87c9a Added copyright notice to individual source files. 2015-06-30 19:21:12 -07:00
Vidar Holen 349dfdab35 Relicense from AGPL v3 to GPL v3. 2015-06-20 09:52:07 -07:00
Vidar Holen 1ab29ddb39 Made SC2082 indirection message more sh friendly. 2015-06-14 17:20:52 -07:00
Vidar Holen 09b7788412 Don't consider declare -Ffp assignments. 2015-06-14 16:51:18 -07:00
Vidar Holen ef2135f3aa Don't warn about unpassed parameters if used in child functions. 2015-06-14 16:14:05 -07:00
Vidar Holen d10c3b2709 Don't warn about 2>&1 > foo if piping or capturing. 2015-06-14 15:39:44 -07:00
Vidar Holen 8b8b48ef55 Make quoted tilde message suggest $HOME instead. 2015-06-14 10:24:40 -07:00
Vidar Holen 65ab8c8ecb Account for brace expansion in SC2115 (catastrophic rm). 2015-06-07 13:02:49 -07:00