Commit Graph

628 Commits

Author SHA1 Message Date
Vidar Holen fc1af1b918 Also check for overridden time parameters for /bin/sh 2013-05-25 22:43:17 -07:00
Vidar Holen 17cf796486 Different checks per shell, and increased bashism detection. 2013-05-25 22:33:21 -07:00
Vidar Holen cf67bf2294 Added check for 'time --format' and such, which Bash swallows. 2013-05-23 22:28:12 -07:00
Vidar Holen e8a0fe09bf Added error for ${foo$n} 2013-05-23 21:47:25 -07:00
Vidar Holen 7ae5351de3 Added warning for foo$n=42 2013-05-23 21:31:29 -07:00
Vidar Holen 034cfee66e Fixed glob parsing for [[:class:]] and [~.:]. Thanks to dualbus! 2013-05-23 20:44:28 -07:00
Vidar Holen 13d4ea6540 Don't complaing about lack of quotes for 'local' and 'declare' 2013-05-20 11:58:08 -07:00
Vidar Holen 92d0ae8b6b Allow [ foo \> bar ], while warning for [[ .. \> .. ]] and [ 1 \< 2 ] 2013-05-14 15:59:58 -07:00
Vidar Holen 10d4abf235 Warn for test n > 4 2013-05-14 15:23:28 -07:00
Vidar Holen ce0b313b93 Better messages for ignored backslashes like 'echo foo\n' 2013-05-13 09:15:45 -07:00
Vidar Holen 2f21ced552 Warn for subshell modifications using 'let' 2013-05-02 12:38:47 -07:00
Vidar Holen 82b16b4076 Warn for [[ $foo > 3.14 ]] 2013-03-22 17:10:30 -07:00
Vidar Holen 6abb5fe72b Quick hack to read and discard array indexing in arithmetic contexts 2013-03-22 16:42:40 -07:00
Vidar Holen 9f244edae3 Warn on "grep foo*.jpg" and "grep *foo*" 2013-03-01 17:28:41 -08:00
Vidar Holen d2e2d06978 Add check for [[ "foo" ]] 2013-02-14 19:43:43 -08:00
Vidar Holen 585529a636 Return list of notes rather than a Map -> Map 2013-02-11 19:26:40 -08:00
Vidar Holen 05cb806642 Also warn for '$((foo)) $(cmd) ${foo}', not just '$foo' 2013-02-07 17:53:47 -08:00
Vidar Holen 795af72cf7 Fixed warning for ${#@} 2013-02-06 22:35:24 -08:00
Vidar Holen 899d9eb445 Warn against open parenthesis in normal words 2013-02-05 20:35:39 -08:00
Vidar Holen 84f87002b7 Split up numerical and legal binary op function 2013-02-05 20:15:13 -08:00
Vidar Holen e64698dc78 Improved empty then/elif/else clause errors 2013-01-26 17:21:34 -08:00
Vidar Holen dd115a6d35 Warn on trap "echo $num" USR1 2013-01-25 20:32:25 -08:00
Vidar Holen f6f05234bf Warn on for f in 1,2,3 and for f in ls; 2013-01-25 20:15:42 -08:00
Vidar Holen 0d3dded238 Check if =~ is applied to something that looks like a glob 2013-01-25 20:06:18 -08:00
Vidar Holen 0c66cfb936 Add warnings for empty then clauses 2013-01-23 17:15:55 -08:00
Vidar Holen 844a07afa0 Added warning for empty do clauses 2013-01-23 17:12:05 -08:00
Vidar Holen 389d5588d8 Make [[ foo=bar ]] check say 'operator' instead of '=', because != 2013-01-22 14:50:30 -08:00
Vidar Holen 7c18ecee4f Parse single/double quoted literals in arithmetic context 2013-01-14 21:52:09 -08:00
Vidar Holen b517ad9e19 select loops and bases in arithmetic contexts 2012-12-31 18:48:57 -08:00
Vidar Holen 059ef63b44 Don't warn for awk '$1' 2012-12-12 18:27:57 -08:00
Vidar Holen 1d7c6f68b4 Fixed bad for f in $(ls *.mp3) after T_Glob 2012-12-06 23:43:19 -08:00
Vidar Holen bb6c155341 {1..$n} is only a problem in Bash 2012-12-05 09:53:16 -08:00
Vidar Holen 6d2e739e09 Hacked in place warnings for if [[ 1 ]] then :; fi 2012-12-02 23:47:17 -08:00
Vidar Holen 6e263e6b76 Parsing support for array indices in assignments. 2012-12-02 21:29:03 -08:00
Vidar Holen b765ed1a44 Removed superfluous messages for [ cow] 2012-12-02 20:40:01 -08:00
Vidar Holen 1fb3380e68 Added warning for find . -execdir rm *.jpg \; 2012-12-02 18:10:00 -08:00
Vidar Holen 6402f7f4a3 Fixed space warning for foo=$(echo $foo) 2012-12-02 17:19:44 -08:00
Vidar Holen d3a4c9852f Read any -* as binary/unary op, and warn on unknown. 2012-12-02 14:50:31 -08:00
Vidar Holen 35b8d58c3e Fixed warning for [[ greplol ]] 2012-12-02 14:15:50 -08:00
Vidar Holen 55a4c3c44f Added check for bashisms with #!/bin/sh 2012-12-02 14:08:50 -08:00
Vidar Holen 1a4301ea98 Added check for "#!/usr/bin/env bash -x" 2012-12-02 12:40:46 -08:00
Vidar Holen 3c2d9557e0 Parse the shebang separately 2012-12-02 12:02:29 -08:00
Vidar Holen 8c1ab0c9b6 Fixed warning for tr abc '[d*]' 2012-12-01 13:19:40 -08:00
Vidar Holen b144700ae0 Support for arithmetic for loops. 2012-12-01 12:56:35 -08:00
Vidar Holen ff85c67c29 Fixed mistaked message for tr '[:upper:]' 2012-11-30 16:13:42 -08:00
Vidar Holen a73d898bd8 Added warning for { if :; then :; fi > cow } 2012-11-30 15:16:20 -08:00
Vidar Holen 34259f16db Fixed message for (($1)) 2012-11-30 14:32:20 -08:00
Vidar Holen 24f91ae711 Revert "Added warning for fi }, and not for ) }"
This reverts commit ea4176691d.

I must have had some crack for breakfast.
2012-11-30 10:24:35 -08:00
Vidar Holen ea4176691d Added warning for fi }, and not for ) } 2012-11-30 09:25:49 -08:00
Vidar Holen f7be39cb5f Added better malformed parsing messages 2012-11-29 22:26:45 -08:00
Vidar Holen 1e3b429abe Check for tr hello world 2012-11-29 20:11:47 -08:00
Vidar Holen b718e5f108 Parser help with globs, fixed message for grep foo\* 2012-11-29 19:20:44 -08:00
Vidar Holen 1bc6086aec Added check for find / -exec foo && bar \; 2012-11-28 22:21:58 -08:00
Vidar Holen 3308ac9173 Warning for dirname/basename 2012-11-28 21:06:58 -08:00
Vidar Holen 089537afed Added parsing support for $'..', which also fixed bug in `\`` 2012-11-28 20:56:27 -08:00
Vidar Holen beafb9284a Added support for process substitution 2012-11-28 20:39:27 -08:00
Vidar Holen 8cf899300d Added error for cat << (foo) 2012-11-28 19:21:11 -08:00
Vidar Holen 5d408875f1 Added [[ op -v and -R 2012-11-28 14:44:51 -08:00
Vidar Holen 7d7624252b Added check for for f in $(cat foo) 2012-11-28 11:38:54 -08:00
Vidar Holen 3b1ec7f84e Check for [[ $foo =~ '.*' ]] 2012-11-28 00:16:08 -08:00
Vidar Holen 01d3e5e858 Fixed unquoted error for [ ! $(foo) ] 2012-11-27 23:59:08 -08:00
Vidar Holen b2c1c103c1 Added check for $(expr 3 + 2) 2012-11-27 23:55:08 -08:00
Vidar Holen 55ea991da7 Misspelled 'deprecated' 2012-11-27 23:42:50 -08:00
Vidar Holen 8db22b02e1 Added check for while $((n>3)); do .. 2012-11-27 23:38:44 -08:00
Vidar Holen 396541f3c2 Stop treating backticks as literals. 2012-11-27 23:11:59 -08:00
Vidar Holen 0cbbee7b89 Added slightly better ${..} parsing 2012-11-27 23:05:39 -08:00
Vidar Holen 77a3e3b331 Fixed incorrectly calling [ -z $foo ] a tautology. 2012-11-27 20:40:13 -08:00
Vidar Holen 2b2ee0a897 Suggest IFS='' as style for assigning empty vars. 2012-11-27 20:27:07 -08:00
Vidar Holen e8a2ac09c7 Added check for grep foo* 2012-11-27 20:26:41 -08:00
Vidar Holen 96c8a01017 Added check for find / -name *.php 2012-11-27 20:10:54 -08:00
Vidar Holen e2a6ffbea4 Added check for 'foo(a,b) {', support 'function foo {' 2012-11-27 19:45:32 -08:00
Vidar Holen 807e56355d Punctuated message. 2012-11-27 01:48:51 -08:00
Vidar Holen bb7e844125 Added better message for missing ]/]] 2012-11-27 01:28:42 -08:00
Vidar Holen 100fff4835 Added grep | sed check like existing grep | awk. 2012-11-27 01:21:14 -08:00
Vidar Holen 1aeff4f955 Added more robust a=cat foo | grep bar checker 2012-11-27 01:05:32 -08:00
Vidar Holen adfdc0a627 Added check for a=ls -l 2012-11-27 00:48:09 -08:00
Vidar Holen a8715d2d5f Added check for A=foo | grep bar 2012-11-27 00:41:10 -08:00
Vidar Holen 0ca6d0f6cc Added extglobs as splitting words 2012-11-27 00:32:00 -08:00
Vidar Holen 131b9f0517 Added checks for tr a-z A-Z and [asdf] 2012-11-27 00:28:47 -08:00
Vidar Holen ba5bb488d1 Case statements are now rightfully unquotable contexts 2012-11-27 00:11:23 -08:00
Vidar Holen 2052adffef Even more robust then/fi/do/done feedback 2012-11-27 00:08:24 -08:00
Vidar Holen 8cf02e60af More robust fi/done mixup reporting 2012-11-26 23:50:00 -08:00
Vidar Holen 2ea4711ff4 Added check, for f in 'find /'; do .. 2012-11-26 22:58:30 -08:00
Vidar Holen ef332217a1 Check for if[ foo ] 2012-11-26 22:49:23 -08:00
Vidar Holen 34690ad3db Added more helpful message for 'if [ grep .. ]' 2012-11-26 22:23:40 -08:00
Vidar Holen 7025ebd633 Made unquoted $(..) check more robust 2012-11-26 21:52:47 -08:00
Vidar Holen 211c923f8b Replaced common commands from /bin to posix utility list 2012-11-26 21:22:20 -08:00
Vidar Holen 4a803d2e48 Removed trailing whitespace 2012-11-26 20:43:19 -08:00
Vidar Holen f4afb9a88f Added check for constant [[]] expression, e.g. [[ a == b ]] 2012-11-26 20:42:10 -08:00
Vidar Holen 648090af31 Added warnings for then/fi/do/done treated literally. 2012-11-25 10:49:21 -08:00
Vidar Holen 21262399cc Added a check for spurious }s 2012-11-25 00:42:59 -08:00
Vidar Holen d58bd400ea Added check for echo $foo | wc -c 2012-11-25 00:07:53 -08:00
Vidar Holen aaf5ac6f8f Added check for echo $a | sed s/foo/bar/g 2012-11-24 20:38:37 -08:00
Vidar Holen aae87fc030 Added better space/glob checks 2012-11-24 14:41:17 -08:00
Vidar Holen 807ecbd038 Added extglob support that actually works 2012-11-19 23:20:01 -08:00
Vidar Holen 5100bc0989 Added check for [[ a != foo || a != bar ]], and same for (( )) 2012-11-19 22:54:55 -08:00
Vidar Holen 3f3ca2789b Moved Eq Token instance to AST where it belongs 2012-11-19 22:32:55 -08:00
Vidar Holen 0e4f8a763f Added extglob support 2012-11-19 22:27:44 -08:00
Vidar Holen 6977963124 Added checks for multiple pipe combinations. 2012-11-19 21:52:26 -08:00
Vidar Holen 090b94161d Fixed incorrect warning for foo=$3 2012-11-17 10:53:39 -08:00
Vidar Holen ecccc7a6b7 Added some more punctuation to messages. 2012-11-17 10:21:34 -08:00
Vidar Holen 0141bd812b Give it some attitude 2012-11-16 23:04:40 -08:00
Vidar Holen 9eac0bfab9 Homogenized punctuation across messages. 2012-11-16 22:20:35 -08:00
Vidar Holen 45d5896cf8 More helpful errors for partial if statements 2012-11-16 21:30:52 -08:00
Vidar Holen 89b0168254 Fixed incorrect errors on [[ $1 ]] 2012-11-16 21:01:26 -08:00
Vidar Holen 258a13721e Added readme and licenses 2012-11-16 19:43:05 -08:00
Vidar Holen a7a19fa366 Support a+=foo 2012-11-16 18:53:54 -08:00
Vidar Holen 851de930c0 Removed bash, true and false from [ command ] check, since these could be values 2012-11-16 11:15:26 -08:00
Vidar Holen a172c8a8b9 Fixed $(( ! n )) and incorrect warning on $(($?)) 2012-11-16 11:07:10 -08:00
Vidar Holen 900c6d01d4 Cleaned up analytics notes 2012-11-16 10:22:04 -08:00
Vidar Holen 2581be14e4 Moved AST into its own file 2012-11-16 10:12:51 -08:00
Vidar Holen 5faf8e7141 Added check for printf "$var" 2012-11-16 09:53:35 -08:00
Vidar Holen 686c895858 Added check for [[ foo == $bar ]] 2012-11-15 23:43:57 -08:00
Vidar Holen a2cc44a04d Added check for $(($n)) 2012-11-15 23:32:45 -08:00
Vidar Holen ad9db04856 Fixed incorrect n=1 & n=foo$n and same for $((n++)) 2012-11-15 23:23:08 -08:00
Vidar Holen 5d26f627cf Rewrote the horrible analyze code 2012-11-15 22:19:06 -08:00
Vidar Holen 61baf730e0 Added support for parsing arithmetic context 2012-11-15 21:38:36 -08:00
Vidar Holen 38c5c6f847 Added warning for {1..$N} 2012-11-08 21:55:24 -08:00
Vidar Holen 7dbae12c7e Fixed bugs related to groupings in conditions 2012-11-08 21:48:32 -08:00
Vidar Holen 33913366b1 Fixed bug in allModifiedVariables 2012-11-08 21:08:20 -08:00
Vidar Holen f9f2982c9f Added check for [ a==b ] 2012-11-08 20:43:51 -08:00
Vidar Holen 947ae519a2 Fixed [ grep foo bar ] warning not working 2012-11-08 20:28:06 -08:00
Vidar Holen 97e886e6dd Added more [[]]-related checks 2012-11-08 20:19:34 -08:00
Vidar Holen 977cf427ca Added parser for [[]]/[] with associated errors 2012-11-08 14:39:14 -08:00
Vidar Holen 99e765ff34 Minor text modifications 2012-11-07 18:27:12 -08:00
Vidar Holen de31835676 Added reason in messages about subshells 2012-11-07 16:36:18 -08:00
Vidar Holen 9ca7d57780 Renamed much of the ShellCheck.Simple interface 2012-11-06 13:26:25 -08:00
Vidar Holen e264f64266 Renamed from codename Shpell to final name ShellCheck. 2012-11-06 11:31:53 -08:00