3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Linux】シェルスクリプトのシンタックスチェックの方法

Last updated at Posted at 2019-05-16

長いスクリプトを書いていたりすると、
書き終わって実行した時にシンタックスエラーが沢山出たりして辛い思いをする事があります。
そこで今日は、凄く簡単に出来る、
シェルスクリプトのシンタックスチェックの方法について書いていきます。

シンタックスチェックってなんぞや?

プログラムの構文が正しいかどうか調べることをシンタックスチェックと言います。
引用元: ナレッジベース:FAQ

つまり、シェルスクリプトの文法のチェックが出来ます。
しかも、とても簡単に出来ます。

その1 " -n オプションをつけて実行"

以下のように -n オプションをつけて実行すればOKです。

# bashの場合
$ bash -n hoge.sh

# shの場合
$ sh -n hoge.sh

# zshの場合
$ zsh -n hoge.sh

# dashの場合
$ dash -n hoge.sh

非常に簡単ですね。
※但し、変数のタイプミスなどはエラーにならないので注意が必要です。

その2 "ShellCheck"

ShellCheckはシェルスクリプトのシンタックスチェックをしてくれるツールです。
koalaman/shellcheck

インストール方法

各ディストリビューション毎に記載しています。
▼Macも記載。

# Debianベースのディストリビューション
$ sudo apt-get install shellcheck

# EPELベースのディストリビューション
$ sudo yum -y install epel-release
$ sudo yum install ShellCheck

# OS X
$ brew install shellcheck

使い方

ターミナルを開いて、以下の様に実行すればOKです。

$ shellcheck [options] hoge.sh

主なオプション

オプション 意味
-e [CODE1,CODE2..] shellcheckが返すエラーコードを指定して、そのエラーや警告を無視します。カンマ区切りで複数指定可能です。
-f [FORMAT] チェック結果の出力形式を指定します。指定可能な出力形式については後述します。
-s [target] ターゲットをsh、bash、dash、kshから指定できます。デフォルトでは、ファイルのシバンを使用するか、ターゲットシェルを判別できない場合はbashを使用します。
-V バージョン情報を出力して終了します。

指定可能な出力形式

指定フォーマット 意味
tty デフォルトの出力形式。
gcc GCC互換の出力形式。
checkstyle Checkstyle互換のXML出力。
json Json形式での出力。

参考資料

http://www.atmarkit.co.jp/flinux/rensai/linuxtips/780chshsyntax.html
https://www.mankier.com/1/shellcheck
https://rcmdnk.com/blog/2014/11/26/computer-bash-zsh/

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?