Commit Graph

563 Commits

Author SHA1 Message Date
Vidar Holen 0e464ea476 Stable version 0.3.1
This release is dedicated to the Flycheck team,
even though ShellCheck is written entirely in Vim.
2014-02-03 20:22:30 -08:00
Vidar Holen 4e5d32b05a Added --version flag 2014-02-03 20:06:59 -08:00
Vidar Holen c5141b77bf Fixed parser not accepting `` in arithmetic contex 2014-02-03 16:45:48 -08:00
Vidar Holen 77916d2645 Fixed compilation error on GHC7 2014-02-02 21:47:02 -08:00
Vidar Holen 4968e7d9ff Added -s flag to override dialect, e.g. -s ksh 2014-02-02 19:28:09 -08:00
Vidar Holen 075d58ee90 Replaced parser error for 'function' with shell-aware check. 2014-02-02 13:39:44 -08:00
Vidar Holen 6a4a5a815e Don't consider last stage of pipeline a subshell for Ksh/Zsh
Also fixes the problem where pipelines were considered a single subshell.
2014-02-02 13:03:26 -08:00
Vidar Holen 76a39f254b Refactoring, 25% speedup.
* Checks now use Writer monad instead of State

* Parser no longer emits notes unrelated to parsing.

* All checks are now passed a parameter value, containing shell type,
  map from notes to parents and such. This eliminates recalculation
  and removes the need for a special group of parent examining checks.
2014-02-02 04:59:17 -08:00
Vidar Holen 8ec9fa43fd Warn about break/continue in subshells and outside loops 2014-02-01 23:45:26 -08:00
Vidar Holen e8634a3c27 Removed duplicate check for [[ a == b + 1 ]] 2014-02-01 20:45:44 -08:00
Vidar Holen 9ae776530b Check for [[ i + 1 = 2 ]] 2014-01-27 22:47:48 -08:00
Vidar Holen 82328cd86e Warn about literal "\ " just like literal quotes.
Also, do it recursively.
2014-01-27 22:11:46 -08:00
Vidar Holen 4262c4b1bf Allow {} in arithmetic for loops 2014-01-26 12:44:51 -08:00
Vidar Holen 7ad0110443 Don't warn about sed '$d' or '$p' 2014-01-25 14:54:05 -08:00
Vidar Holen e9bba2f75a Don't warn about comma separation in for f in {a,b} 2014-01-25 14:30:25 -08:00
Vidar Holen 74ea5eaeec Parse but warn about "else if" 2014-01-25 14:12:31 -08:00
Vidar Holen cfb44b3fe2 Warn about 'cd $f; foo; cd ..' loop antipattern. 2014-01-17 09:02:14 -08:00
Vidar Holen 43ed5e748d Allow '# shellcheck disable=SC1234' to ignore by code. 2014-01-16 23:08:56 -08:00
Vidar Holen 4dca88aade Don't warn about quotes in variables for eval 2014-01-16 19:41:09 -08:00
Vidar Holen 1d2c7a8551 Warn about abused char classes, such as [10-15] and [:digit:] 2014-01-14 21:20:21 -08:00
Vidar Holen 659709d529 Fixed ${!var} not counting as reference of var 2013-12-30 10:00:05 -08:00
Vidar Holen 5b4729d940 Parser: allow subshell function definitions 2013-12-30 09:50:14 -08:00
Vidar Holen 8c00850134 Minor performance tweaks (~10% improvement) 2013-12-15 18:43:34 -08:00
Vidar Holen d1990e3396 Warn about 'i=i+1' and 'i=i + 1' 2013-12-15 16:11:17 -08:00
Vidar Holen 95ebe1cd07 Fixed parser error for '..; done| ..' 2013-12-15 14:39:47 -08:00
Vidar Holen 27822a1f56 Warn about 'foo=bar echo $foo' 2013-12-14 16:06:19 -08:00
Vidar Holen eb06b06475 Don't warn about single quoted vars for ssh 2013-12-14 15:28:58 -08:00
Vidar Holen 5d72432046 If printf string contains %, don't warn about using vars 2013-12-14 15:27:11 -08:00
Vidar Holen da51b14789 Parser: accept here doc token strings more liberally 2013-12-14 15:20:15 -08:00
Vidar Holen 7be8485b8b Fixed parsing of 'time' in front of compound commands 2013-12-14 14:44:47 -08:00
Vidar Holen a4d36ba0d2 Warn about while read f; do ssh "$f"; done 2013-11-29 23:05:41 -08:00
Vidar Holen d4bc0f6e10 Don't require separator before do in 'for i do ..' 2013-11-29 16:22:37 -08:00
Vidar Holen 1011ae7b3c Fixed incorrect parsing of [ foo -a -f bar ] 2013-11-24 18:49:49 -08:00
Vidar Holen d603ee1e89 Don't warn for A&&B||C if C is echo/exit/assignment 2013-11-24 16:15:10 -08:00
Vidar Holen 4fc518c877 Cleaned up command matching code 2013-11-24 15:48:07 -08:00
Vidar Holen 7fda86d6e2 Fixed warning for 'exec foo; exit 3' 2013-11-24 14:48:12 -08:00
Vidar Holen 6905373b6c Fix incorrect warning for 'foo > bar 2> bar' 2013-11-24 14:20:24 -08:00
Vidar Holen 1d8401d583 Assume variables have spaces by default 2013-11-17 16:16:58 -08:00
Vidar Holen a89aee1a34 Assume variables have spaces/globs by default 2013-11-17 16:13:45 -08:00
Vidar Holen 4853dce3fe Fixed wrong quoting warning for foo=" "; foo 2013-11-17 15:00:07 -08:00
Vidar Holen a793e09bab Added hint to suggest missing ;; in case 2013-11-17 14:41:55 -08:00
Vidar Holen d8b5d6393a \" should not be treated specially in `backticks` 2013-11-12 18:27:18 -08:00
Vidar Holen d404bc703d Show expose error code in shellcheck frontends 2013-11-10 12:22:33 -08:00
Vidar Holen e5e08df1d9 Numbered messages 2013-11-10 10:55:46 -08:00
Vidar Holen 83c3dd3418 Accept ./? in function names 2013-11-03 13:58:06 -08:00
Vidar Holen 8d265aa25e Don't warn about expr if using : operator 2013-11-03 13:47:04 -08:00
Vidar Holen 71bc26aefa Fixed parsing of | outside of groups in =~ regex 2013-11-03 13:13:24 -08:00
Vidar Holen 8a3d259ae6 Don't warn about single quotes in args to perl 2013-11-03 12:47:44 -08:00
Vidar Holen 3a9ae0ebf1 Accept dir-/basename due to edge cases like "/" and "foo" 2013-11-03 12:42:11 -08:00
Vidar Holen 6d0bfcf37a Fixed parser accepting spaces after here doc token 2013-10-27 16:02:27 -07:00
Vidar Holen e0bbb89d00 Fixed parser bug where }> wasn't recognized as Rbrace 2013-10-27 15:36:47 -07:00
Vidar Holen b1af7bb8f2 Fixed parser error for 'for ((;;)) ; do' 2013-10-11 20:03:55 -07:00
Vidar Holen 157fea73da Suggest ./* instead of * for command arguments 2013-10-06 15:54:31 -07:00
Vidar Holen b439f02b8e Improved assignment parsing: track indices and += vs = 2013-10-06 14:44:43 -07:00
Vidar Holen 710a28c572 Revert "Fixed parsing for 'eval var=(values)'", because it fails for 'eval $x=foo'
This reverts commit 34e69556b1.
2013-09-29 21:35:20 -07:00
Vidar Holen 702d57b655 Warn about unicode quotes 2013-09-29 21:22:42 -07:00
Vidar Holen 34e69556b1 Fixed parsing for 'eval var=(values)' 2013-09-29 21:00:29 -07:00
Vidar Holen 7c411b39ac Fixed warnings for read -p "Name: " 2013-09-29 20:55:26 -07:00
Vidar Holen 5a959bc340 Fix parser errors for unclosed $( in here docs 2013-09-21 16:27:17 -07:00
Vidar Holen fb5f72951d Don't warn about unused variables for read '' 2013-09-12 19:11:42 -07:00
Vidar Holen 7630136d6c Move command and variable lists to ShellCheck.Data. 2013-09-12 18:50:33 -07:00
Vidar Holen dacb8c597f Fixed a series of extglob parsing oddities and edge cases 2013-09-04 13:02:30 -07:00
Vidar Holen 58b8e0ab70 Suggest pgrep when grepping ps 2013-08-31 18:32:07 -07:00
Vidar Holen 9586a46c9c Warn about assigned but unreferenced variables 2013-08-31 18:26:20 -07:00
Vidar Holen bb49cf8e65 Parse the contents of unquoted here documents 2013-08-31 17:03:15 -07:00
Vidar Holen de1fa61560 Warn about client side expansion in ssh strings/heredocs. 2013-08-03 21:19:32 -07:00
Vidar Holen 07b1fd6f44 Allow :+- in function names. :(){ :|:;};:, anyone? 2013-08-03 20:22:32 -07:00
Vidar Holen d0caa1e1df Don't warn for 'find .. | xargs -0' or 'ls -N | ..' 2013-07-25 19:58:53 -07:00
Vidar Holen 62566ee016 Clarified warning for expr 2013-07-24 00:17:31 -07:00
Vidar Holen c1731bd72c Don't warn about redirecting sudo to /dev/null 2013-07-23 23:46:40 -07:00
Vidar Holen 4d9f8ebb39 Allow lack of spaces/separators in for((;;))do .. 2013-07-23 23:30:48 -07:00
Vidar Holen 6aab109afb Fixed up some warning messages. 2013-07-23 23:13:28 -07:00
Vidar Holen 8c5f0a062e Warn about suspicious quotes in "foo "$var" bar" 2013-07-23 22:48:35 -07:00
Vidar Holen 5ba382d79b Fixed parsing of IFS= read as single assignment 2013-07-23 22:12:13 -07:00
Vidar Holen d28f1fff56 Tried to make [ foo=bar ] messages simpler 2013-07-23 21:53:01 -07:00
Vidar Holen 1784972af7 Don't warn about echo "--------" is posix mode 2013-07-23 21:40:55 -07:00
Vidar Holen 6974497f45 Don't warn for \. (regex) and \, (printf "%q" output) 2013-07-23 21:35:00 -07:00
Vidar Holen b147419717 Don't warn for $ on $(( ${array[refs]} )) 2013-07-23 21:29:19 -07:00
Vidar Holen d6dab3bd05 Don't warn about IFS= read .. 2013-07-23 21:23:33 -07:00
Vidar Holen cd1368b434 Added $PWD as a variable likely to contain spaces 2013-07-23 21:03:43 -07:00
Vidar Holen f348661e7e Generalized for f in $(ls) warning, due to many edge cases. 2013-07-23 20:54:04 -07:00
Vidar Holen 9393e4405b Fixed accidental warning for $".." 2013-07-11 09:32:13 -07:00
Vidar Holen e84d5abc3e Support for recursive regex groups 2013-07-10 23:47:25 -07:00
Vidar Holen 0a2314cdcd Also allow array syntax for args to readonly. 2013-07-10 23:15:08 -07:00
Vidar Holen 3e39411b38 Don't suggest ${foo//bar/baz} for #!/bin/sh 2013-07-10 23:14:10 -07:00
Vidar Holen 2214889a36 Improved messages for missing spaces in [..] 2013-07-10 23:03:42 -07:00
Vidar Holen 5a3493740e Warn for [ \( foo = bar\) ] 2013-07-10 18:05:51 -07:00
Vidar Holen e6f2ee1f88 Don't try to parse $'..' in "" 2013-07-10 17:41:38 -07:00
Vidar Holen 3832ca9d5c Simplified PS1 checks. 2013-07-09 23:43:27 -07:00
Vidar Holen 636c6a9336 Parser support for export a=(b c). Also declare/local/typeset. 2013-07-09 23:32:13 -07:00
Vidar Holen 6b9cad55a5 Better unquoted message, seeing as how it's so common. 2013-07-09 22:18:22 -07:00
Vidar Holen 4780da31c2 Added bashism warning for &> 2013-07-09 22:11:17 -07:00
Vidar Holen d04262c70f Fixed broken recursive backtick expansion. 2013-07-09 21:53:15 -07:00
Vidar Holen 8055b6f9c5 Fixed warning for trap '$VAR' 2013-07-09 09:26:48 -07:00
Vidar Holen c3211e559d Added check for for f in $(find ..) similar to $(ls) 2013-07-08 21:09:27 -07:00
Vidar Holen 3d47609e78 Warn for [ $foo = *glob* ] 2013-07-08 20:45:15 -07:00
Vidar Holen 52f2f71b40 Added missing id/recursing defintions for DollarBracket 2013-07-08 09:51:57 -07:00
Vidar Holen 599beff5b1 Moved shebang verification to parser 2013-07-08 09:39:54 -07:00
Vidar Holen a08e60cd07 Don't try to parse scripts declared as perl, ruby or python 2013-07-07 13:22:29 -07:00
Vidar Holen 2500b2cce6 Fixed parser warning for \{foo,bar\} 2013-07-06 15:36:06 -07:00
Vidar Holen 56e0119db1 Fixed some incorrect warnings for PS1 escapes. 2013-07-05 19:12:13 -07:00
Vidar Holen 76c5af2973 Parser support for $[..], plus deprecation warning. 2013-07-05 09:42:08 -07:00
Vidar Holen fc4a6043d7 Reformatted ugly AST definition 2013-07-05 09:24:22 -07:00
Vidar Holen a20a3499ed Improved bad indirection detection 2013-07-05 09:15:08 -07:00
Vidar Holen 73c6202842 Fixed misplaced uuoc for 'cat foo' outside pipe. 2013-07-04 14:27:03 -07:00
Vidar Holen 10b5e44ad0 Improved help for missing here doc terminator. 2013-07-04 14:19:54 -07:00
Vidar Holen 66cebe7c7b Don't warn about quoting when $var is the command name. 2013-07-04 13:49:00 -07:00
Vidar Holen af4d24c6f6 Check for 'echo "\n"'. 2013-07-04 13:42:31 -07:00
Vidar Holen fc3045232f Don't warn about f=/dev/null in 'foo $f > $f' 2013-07-04 13:18:46 -07:00
Vidar Holen dbd4ff109c Mention second level structure being parsed when error. 2013-07-04 13:07:27 -07:00
Vidar Holen d2c5802a9d Fixed UUOC warning for 'cat * | ..'. 2013-07-04 12:26:59 -07:00
Vidar Holen ab20747ef2 Removed warning for ~ in the middle of strings. Too common. 2013-07-04 12:01:34 -07:00
Vidar Holen 9e84ff66f7 Warn about $() but not quotes in 'if $(cmd); ..' 2013-07-04 11:44:36 -07:00
Vidar Holen b060370b92 Added and improved parse warnings for missing spaces. 2013-07-03 16:37:58 -07:00
Vidar Holen f557ac3324 Added check for 'exec foo; cmd' 2013-07-02 22:37:33 -07:00
Vidar Holen 5d46c8a53f Added check for functions used with sudo/xargs/etc 2013-07-02 21:35:17 -07:00
Vidar Holen 99be2736a1 Doubled speed by applying all checks in one iteration. 2013-07-02 20:29:07 -07:00
Vidar Holen 6aafc86a67 Added check for './ file'. Apparently people do that. 2013-07-02 20:09:01 -07:00
Vidar Holen 9cfa25cb56 Added check for ~ in quotes 2013-07-02 19:52:09 -07:00
Vidar Holen 499f7c8733 Warn for possible bad quote nesting like 'echo 'foo'' 2013-07-01 10:01:58 -07:00
Vidar Holen 651bab73de Fixed crash for ''foo due to unsafe 'last' 2013-07-01 09:14:33 -07:00
Vidar Holen 652f8a24fa Added most checks from 'checkbashisms'. Thanks to Braakman, Rodin and Gilbey! 2013-06-30 12:13:18 -07:00
Vidar Holen f820298b6e Added recursive parsing support for `..` 2013-06-26 21:04:39 -07:00
Vidar Holen 25ee7e20f4 Added awkward check for PS1 escapes outside \[..\] 2013-06-25 20:59:54 -07:00
Vidar Holen 438c4ec572 Fixed up warnings for \r, and added warnings for   2013-06-21 01:22:11 -07:00
Vidar Holen 5794f3d390 Fixed parsing of "test$" 2013-06-21 00:33:20 -07:00
Vidar Holen 092073d0b3 Fixed parsing for case foo \n in .. 2013-06-20 23:57:08 -07:00
Vidar Holen 51cd951baa Added warnings for sudo cmd > file 2013-06-18 20:08:56 -07:00
Vidar Holen 3b246f94a3 Fixed parsing for cmd &> file 2013-06-18 20:08:33 -07:00
Vidar Holen 564e3c5413 Don't start comments for #s in the middle of words. Thanks Mitch! 2013-06-07 18:32:59 -07:00
Vidar Holen 103b037921 Fixed parsing for [] in =~ regex 2013-05-31 14:22:13 -07:00
Vidar Holen 1b8b3b84d0 Fixed broken test for for f in "*.mp3"; do .. 2013-05-29 21:05:15 -07:00
Vidar Holen 1dbbc51f86 Improved regex parsing. To think [[ f =~ f( ]] )* ]] is valid.. 2013-05-28 21:32:15 -07:00
Vidar Holen 6b89f33d0c Warn about arg='--foo="bar"'; cmd $arg 2013-05-28 20:06:20 -07:00
Vidar Holen b279411d70 Rewrote variable tracking code for future expansion 2013-05-27 20:54:03 -07:00
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