Products: IntelliJ IDEA, RubyMine, WebStorm, PhpStorm, PyCharm, AppCode, Android Studio, 0xDBE, CLion

Vendor: Joachim Ansorg



Source code:


Bugtracker page

Bash 4 support for IntelliJ. Supports syntax highlighting, rename refactoring, documentation lookup, inspections, quickfixes and much more.

I will marry in April and invite all happy users of BashSupport to chip in by sending us a wedding gift:
Downloads: 1268050
Participated in rating: 36
Version Compatible builds Date
1.4.0_build141 141 — 141.* 05.03.2015 Download
1.4.0_build140 140 — 140.* 05.03.2015 Download
1.4.0_build139 139 — 139.* 05.03.2015 Download
1.4.0_idea13 135 — 137.* 05.03.2015 Download
1.3.4 139 — 140.* 05.02.2015 Download
1.2 138.1980 — 138.* 13.09.2014 Download
1.2 134 — 137.* 13.09.2014 Download
1.1beta24-idea_138 138.379 — 138.* 30.05.2014 Download
1.1beta24-idea_138 138 — 138.* 29.05.2014 Download
1.1beta20 125 — 129.* 28.11.2013 Download
1.1beta20-idea13 133 — 133.* 28.11.2013 Download
1.1beta19-idea13 132 — 133.* 10.10.2013 Download
1.1beta19-idea13 130.1486 — 131.* 15.08.2013 Download
1.1beta19-idea12.0 123 — 123.* 15.08.2013 Download
1.1beta18 121 — 129.* 10.08.2013 Download
1.1beta16 121 — 130.* 13.05.2013 Download
1.1beta8 117.84 — 119.* 28.03.2012 Download
1.1beta7 111 — 117.* 16.02.2012 Download
1.1beta1 110.291 — 110.* 10.11.2011 Download
1.0 107.100 — 109.* 19.05.2011 Download
0.9.23 103.72 — 107.* 11.04.2011 Download
0.9.21 99.18 — 107.* 24.03.2011 Download
0.9.15 97 — 97.* 06.02.2011 Download
0.9.15 95.429 — 95.* 06.02.2011 Download
0.9.3 81.9100 — 85.* 07.08.2009 Download
29 updates are hidden show all updates
Screenshot #14087

Recent change notes

Changes in version 1.4.0:
  • Fixed the "Run before" steps of a Bash run configuration
  • The template Bash run configuration has no default "make" run before step now
  • Added basic Bash live templates: if, ife, ifee, while, until, case, cap, cap2, cap3
  • Added live template context for Bash files
  • The special /usr/bin/env command is now supported by the shebang inspection
  • No keyword autocompletion in a variable context
  • Fixed parsing of a file containg a $ as last character
  • Fixed autocomplete in eval and trap commands
  • Parser performance improved (pool for internal marker objects added)
  • Possible fix for a stack overflow in the parser (not reproducible here, though)
  • #193: Variables in arithmetic base expressions were not supported
  • #194: $(( 8#9 )) threw an exception about an invalid base 8 for the value 9. A warning is now displayed in the editor instead.
  • #190: Fixed UOE error in the "register as global variable" quickfix
  • #179: Fixed NPE in FileInclusionManager
  • #152: Guard to prevent endless recursions
  • #192: Fixed NPE in highlighting of arithmetic expressions
  • #170: Keywords like "fi", "if", "while", "done" were not offered in the list of autocompletion suggestions
  • Fixed autocompletion at the end of a string, e.g. "$a". The string end marker was replaced if tab was pressed.
  • Fixed autocompletion with open strings, e.g. $a\necho "x". The command in the next line was removed if tab was pressed.
  • Fixed autocompletion in curly brackets, e.g. ${}. The right curly bracket was removed if tab was pressed.
  • Fixed missing autocompletion of global variables and built-in commands inside of parameter expansions
  • #184: Single quoted associative array keys parsing error
  • #186: Erroneous warning "Simple use of array variable" when iterating through array
  • NPE fix for FileInclusionManager
Changes in version 1.3.x:
  • Fixed exceptions caused by an invalid implementation of the time command (PsiWhitespace exceptions)
  • Fixed exception "Assertion failed: leaveModal() should be invoked in event-dispatch thread"
  • Fixed NullPointerException in AddShebangInspection.getBatchSuppressActions
  • Escape characters were not accepted in case pattern
  • Fixed "Local variable definition on global level" inspection
  • Fixed case expressions followed by a backtick character
  • Small performance and memory improvement in the Bash file lexer
  • Fixed run configurations produced for non-Bash files. Run configuration are now only created for Bash files.
  • Fixed IndexNotReadyException
  • Fixed UnsupportedOperationException which occurred after a new plain text file without extension was created.
  • Fixed the message displayed on startup
  • I invite all happy users of BashSupport to chip in by sending us a wedding gift: make a small donation here
  • Major work on the run configuration: Ansi colors supported, reuse of default components, bugs fixed
  • Enabled and fixed the custom error reporting dialog
  • Creating new Bash run configurations now picks up the shell path and shell options of the file's shebang line
  • Disabled debug button for Bash run configuration
  • #166: Support for ToDo-Strings in Bash comments
  • Added characters +#_ to the filename characters
  • Fixed NPE BashPathCommandCompletion which occurred at startup of the latest IntelliJ IDEA EAP
  • Fixed QuickFix implementations to not reference PSI element, reduces memory consumption
  • The inspection "Add missing shebang..." can now be suppressed. A comment will be added to the file to suppress it.
  • Fixed NPE which occurred with unclosed subshell expressions
Changes in version 1.2.x:
  • Fixed invalid warnings about unused paramters in ${*} and ${@}
  • Support for the getopts command
  • Support for process substitution redirects, e.g. <(command)
  • [Issue 145]: Functions defined in include files are now properly found if included on global level
  • Fixed parsing of optional array variables used in the read command
  • Array type of a variable is inferred by typeset -a now, too
  • Added support to detect illegal use of readonly variables declared by typeset -r or declare -r
  • Fixed autocompletion of built-in variables
  • Added missing implementation of the time command PSI element
  • Recent changes:
    • Finally fixed exception with isDirectory
    • Fixed exception with isDirectory in some versions of IntelliJ
    • Fixed stack overflow exception which occurred in IDEA IntelliJ 13.1.1
    • Removed custom logging configuration to fix global plattform debug output
    • Parsing performance improved, especially for large scripts
    • Support for the typeset command
    • Initial support for the trap command
    • Initial support for the eval command
    • "Replace with ${var}" is not suggested inside of arithmetic expressions any more
    • Improved color scheme definitions, looks better with Darcula
    • Improved performance (variable resolving)
    • Assignments which non-static variable names are not suggested with autocomplete (e.g. "$a"=a)
    • Better looking with themes now
    • Fixed highlighting of redirects
    • Fixed highlighting of keywords used as plain text / word (the unwanted highlighting is removed).
    • Fixed shebang command inspection, settings a properly saved now
    • Added quickfix "Register as valid shebang command" for the shebang command inspection
    • Changed default highlighting level of "Unresolved variable" inspection from error to warning
    • "Simple variable use" is not added to variables which are wrapped by a string
    • "Simple array variable use" is not added to variables which are wrapped by a string
    • $@ is now taken as function parameter use, i.e. a call of a function using $@ does not lead to unused parameter warnings
    • Improved parsing of let commands (still incomplete)
    • Improved parsing of variables named like internal bash keywords
    • Improved performance for large script files (implemented caching references for variables, variable definitions and function definitions)
    • Escape chars were used in single quoted strings, but Bash does not allow escaped characters there
    • Fixed parsing of string as case pattern
    • Fixed parsing of ;;& in Bash 3 parsing mode
    • Autocompletion of commands using the user's $PATH environment. Autocompletion shows on second completion invocation.
    • Setting to disable autocompletion of commands using $PATH
    • Fixed flashing gutter icons
    • Improved parsing of parameter expansion (i.e. the parsing of the / operator)
    • Added parsing of history expansions
    • Fixed parsing of single ! tokens
    • Fix to allow umlaut characters in command names and arguments.

    General usage instructions

    Github project:


    2015-03-30 21:15:09
    2015-03-20 10:27:20
    So I hit a wall with this plugin. I wish to execute a script with build-in command "source" (ex: source 8). And for now I haven't found a way to do it. Any suggestions?
    2015-02-13 19:23:07
    2015-02-11 02:04:55
    There's a bug with some non-standard she-bang lines. I'm using ksh, found in /bin/ksh. I've marked it as a valid command, but every time I restart IntelliJ, the warning returns.
    2015-01-15 21:06:04
    (BashSupport's author here) The latest version 1.3.3 fixes a nasty problem: run configurations were created for non-Bash files. I strongly recommend to update to 1.3.3 if you use a previous version of 1.3.x. I'm sorry for the troubles this might have caused.
    2015-01-15 03:30:10
    The author is popping up dialog asking for money. This is total spam.
    2015-01-13 13:29:11
    If the author of this plugin asks for money one more time, I will uninstall the plugin.
    2015-01-12 22:37:04
    wtf, pops up giant ad begging for money for author's upcoming wedding.
    2014-11-05 18:41:57
    Saving "#!/usr/bin/env bash" as a valid shebang line doesn't seem to work - every time I restart IntelliJ it's marked as unknown. Using IntelliJ IDEA 13.1 Ultimate and BashSupport 1.2.
    2014-10-23 09:00:44
    not work in 8.0.2
    2014-10-15 13:44:05
    BashSupport is available now for the latest 14 EAP (builds 139.*).
    2014-10-12 16:02:23
    Please make it 139.* (14 EAP) compatible.
    2014-06-28 18:32:52
    Would like to use this product but when I try to install in intellij 13.1.3, I get an incompatible error.
    2014-05-28 03:02:03
    I added a fixed plugin jar that works with PhpStorm 8 EAP at the related issue.
    2014-05-20 13:09:20
    Doesn't work with phpstorm eap 8