ShellCheck – A Tool That Shows Warnings and Suggestions for Shell ScriptsShellCheck is a static analysis tool that shows warnings and suggestions concerning bad code in bash/sh shell scripts. It can be used in several ways: from the web by pasting your shell script in an online editor (Ace – a standalone code editor written in JavaScript) in
https://www.shellcheck.net (it is always synchronized to the latest git commit, and is the simplest way to give ShellCheck a go) for instant feedback.
Alternatively, you can install it on your machine and run it from the terminal, integrate it with your text editor as well as in your build or test suites.
There are three things ShellCheck does primarily:
It points out and explains typical beginner’s syntax issues that cause a shell to give cryptic error messages.
It points out and explains typical intermediate level semantic problems that cause a shell to behave strangely and counter-intuitively.
It also points out subtle caveats, corner cases and, pitfalls that may cause an advanced user’s otherwise working script to fail under future circumstances.
In this article, we will show how to install and use ShellCheck in the various ways to find bugs or bad code in your shell scripts in Linux.
How to Install and Use ShellCheck in LinuxOn Debian/Ubuntu apt-get install shellcheck
On RHEL/CentOSyum -y install epel-release
yum install ShellCheck
On Fedoradnf install ShellCheck
Using ShellCheck From the WebGo to
https://www.shellcheck.net and paste your script in the Ace editor provided, you will view the output at the bottom of the editor
Using ShellCheck From the TerminalYou can also run ShellCheck from the command-line,
shellcheck test.sh
Using ShellCheck From the Text EditorYou can also view ShellCheck suggestions and warnings directly in a variety of editors, this is probably a more efficient way of using ShellCheck, once you save a files, it shows you any errors in the code.
In Vim, use ALE or Syntastic
Start by installing Pathogen so that it’s easy to install syntastic. Run the commands below to get the pathogen.vim file and the directories it needs:
# mkdir -p ~/.vim/autoload ~/.vim/bundle && curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim
Then add this to your ~/.vimrc file:
execute pathogen#infect()
Once you have installed pathogen, and you now can put syntastic into ~/.vim/bundle as follows:
cd ~/.vim/bundle && git clone --depth=1 https://github.com/vim-syntastic/syntastic.git
Next, close vim and start it back up to reload it, then type the command below:
:Helptags