組み込み系エンジニア3年生

プログラマ、Linux、組み込み系

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

どうも。dice27です。

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

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

プログラムの構文が正しいかどうか調べることをシンタックスチェックと言います。
引用元:ナレッジベース: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はシェルスクリプトシンタックスチェックをしてくれるツールです。

インストール方法

ディストリビューション毎に記載しています。
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/

【Linux】エイリアスの設定方法


どうも。dice27です。

Linuxエイリアスを設定する方法について、
備忘録も兼ねて書いていきます。

エイリアスってなんぞや?

エイリアス 【alias】
エイリアスとは、偽名、別名、通称などの意味を持つ英単語。
引用元:エイリアスとは : IT用語辞典 e-Words


つまり、コマンドの別名を設定します。
例えばいくつかのコマンドをまとめて別の名前に設定することが出来ます。
例えば、ls -al と打っていたのを ll と打つだけで実行出来るようにする事が出来ます。

設定方法

aliasコマンドを使って以下のようにすれば良い様な気もしますが、これだけだとリブート時にこの情報が保存されていません。

alias ll='ls -al'

そこで、.bashrcというファイルを編集していきます。

.bashrcってなんぞや?

(ログインした後に画面上から)bashを起動したときに読み込まれる設定ファイル
引用元:.bashrcとは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

主な用途としては以下のようなものが挙げられます。



改めて設定方法

1. .bashrcにエイリアスを定義する

ターミナルを開いて、お好きなテキストエディタ.bashrcを開きます。
例:viの場合

$ vi ~/.bashrc

.bashrcを開いたら、エイリアスを記述します。

alias ll='ls -al'



2. .bash_profileに.bashrcを読み込ませる設定

もし.bashrcに書いても、設定が反映されない場合は.bash_profileというファイルに.bashrcを読み込ませてあげる設定が必要です。

.bash_profileってなんぞや?

ログインシェルがbashの状態でログインしたときに読み込まれる設定ファイル
引用元:.bash_profileとは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

ターミナルを開いて、お好きなテキストエディタ.bash_profileを開きます。
例:viの場合

$ vi ~/.bash_profile

.bash_profileを開いたらファイルの一番下に以下のコマンドを記述します。

source ~/.bashrc

そしてこの変更自体も反映させなければいけないので、以下のどちらかを実施して下さい。

  • source ~/.bash_profile の実行
  • ターミナルの再起動

以上で設定は完了です。

エイリアスの確認方法

エイリアスが登録出来ているかを確認するには、aliasコマンドを実行するだけでOKです。

$ alias



参考資料

http://blog.maplesystems.co.jp/programming/18533.html http://qiita.com/yutat93/items/b5bb9c0366f21bcbea62

ブログはじめました

f:id:dice27:20170424090410j:image

初めまして。dice27と申します。

大阪で組み込み系のプログラマをしています。

今年で3年目、何かアウトプットの場を持とうと思ってブログを開設してみました。

 

ひとまず、このブログでは、

  • 勉強した事のアウトプット
  • 仕事上で便利だったTipsの紹介
  • 詰まった事の解決策

だったりを備忘録も兼ねて書いていこうかなと思ってます。

# 三日坊主にならないように頑張ります・・・