SlideShare a Scribd company logo
1 of 14
Download to read offline
ShellCheckを使おう
kanazawa.rb meetup#46
2016年06月18日
Shellを書こう 01
@cotton_desu
Shell書いてますか?
書く人によって書き方が
バラバラ
そんな時は
ShellCheckを使おう
ShellCheckとは
シェルスクリプトの文法チェック
• 文法違反、警告をわかりやすく表示
オプションが豊富
• 出力フォーマットの指定(gcc,xml,json)
• シェルタイプの指定(sh, bash, ksh, zsh)
ShellCheckとは
インストールは簡単
On OS X with homebrew:
brew install shellcheck
On OS X with MacPorts:
port install shellcheck
On Debian based distros:
apt-get install shellcheck
使い方も簡単
shellcheck
shellcheck <file>
shellcheck format option
shellcheck -f <format> <file>
shellcheck shelltype option
shellcheck -s <shelltype> <file>
Demo
• インストールも使い方も簡単
• bash以外のshellにも対応
• 文法違反以外にも対応
(error,warning,note)
• セルフチェックに使いましょう!!
総括

More Related Content

What's hot

Modeller_doc_japanese_ver.1.0
Modeller_doc_japanese_ver.1.0Modeller_doc_japanese_ver.1.0
Modeller_doc_japanese_ver.1.0Satoshi Kume
 
serverspecみんなで集めて(゚Д゚)ウマー?
serverspecみんなで集めて(゚Д゚)ウマー?serverspecみんなで集めて(゚Д゚)ウマー?
serverspecみんなで集めて(゚Д゚)ウマー?Sho Hashimoto
 
TypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめTypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめYu Nobuoka
 
シェル入門
シェル入門シェル入門
シェル入門ina job
 
Serverspecを使ってサーバ5000台のBaculaクライアントをテスト
Serverspecを使ってサーバ5000台のBaculaクライアントをテストServerspecを使ってサーバ5000台のBaculaクライアントをテスト
Serverspecを使ってサーバ5000台のBaculaクライアントをテストKen Sawada
 
FreeCAD OpenFOAM Workbenchセットアップ方法と課題
FreeCAD OpenFOAM Workbenchセットアップ方法と課題FreeCAD OpenFOAM Workbenchセットアップ方法と課題
FreeCAD OpenFOAM Workbenchセットアップ方法と課題murai1972
 
Cent OS7 and RHELl7 update
Cent OS7 and RHELl7 updateCent OS7 and RHELl7 update
Cent OS7 and RHELl7 updateKazumi Hirose
 
systemdでよく使うサブコマンド
systemdでよく使うサブコマンドsystemdでよく使うサブコマンド
systemdでよく使うサブコマンドKazuhiro Nishiyama
 
後期第六回ネットワークチーム講座資料2016
後期第六回ネットワークチーム講座資料2016後期第六回ネットワークチーム講座資料2016
後期第六回ネットワークチーム講座資料2016densan_teacher
 
室内空調シミュレーション手順書
室内空調シミュレーション手順書室内空調シミュレーション手順書
室内空調シミュレーション手順書murai1972
 
Webサーバ勉強会03
Webサーバ勉強会03Webサーバ勉強会03
Webサーバ勉強会03oranie Narut
 
Web講座 第9回
Web講座 第9回Web講座 第9回
Web講座 第9回nanametown
 
新生Lagopus2017(仮称)
新生Lagopus2017(仮称)新生Lagopus2017(仮称)
新生Lagopus2017(仮称)Masaru Oki
 
20151114 open cae@kansai
20151114 open cae@kansai20151114 open cae@kansai
20151114 open cae@kansaiEtsuji Nomura
 
Circle ci and docker+serverspec
Circle ci and docker+serverspecCircle ci and docker+serverspec
Circle ci and docker+serverspecTsuyoshi Yamada
 

What's hot (20)

Modeller_doc_japanese_ver.1.0
Modeller_doc_japanese_ver.1.0Modeller_doc_japanese_ver.1.0
Modeller_doc_japanese_ver.1.0
 
Version管理 1
Version管理 1Version管理 1
Version管理 1
 
serverspecみんなで集めて(゚Д゚)ウマー?
serverspecみんなで集めて(゚Д゚)ウマー?serverspecみんなで集めて(゚Д゚)ウマー?
serverspecみんなで集めて(゚Д゚)ウマー?
 
TypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめTypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめ
 
シェル入門
シェル入門シェル入門
シェル入門
 
Serverspecを使ってサーバ5000台のBaculaクライアントをテスト
Serverspecを使ってサーバ5000台のBaculaクライアントをテストServerspecを使ってサーバ5000台のBaculaクライアントをテスト
Serverspecを使ってサーバ5000台のBaculaクライアントをテスト
 
FreeCAD OpenFOAM Workbenchセットアップ方法と課題
FreeCAD OpenFOAM Workbenchセットアップ方法と課題FreeCAD OpenFOAM Workbenchセットアップ方法と課題
FreeCAD OpenFOAM Workbenchセットアップ方法と課題
 
Startup JavaScript
Startup JavaScriptStartup JavaScript
Startup JavaScript
 
Cent OS7 and RHELl7 update
Cent OS7 and RHELl7 updateCent OS7 and RHELl7 update
Cent OS7 and RHELl7 update
 
systemdでよく使うサブコマンド
systemdでよく使うサブコマンドsystemdでよく使うサブコマンド
systemdでよく使うサブコマンド
 
後期第六回ネットワークチーム講座資料2016
後期第六回ネットワークチーム講座資料2016後期第六回ネットワークチーム講座資料2016
後期第六回ネットワークチーム講座資料2016
 
Mesh dexcs
Mesh dexcsMesh dexcs
Mesh dexcs
 
Docker inside containers
Docker inside containersDocker inside containers
Docker inside containers
 
室内空調シミュレーション手順書
室内空調シミュレーション手順書室内空調シミュレーション手順書
室内空調シミュレーション手順書
 
Webサーバ勉強会03
Webサーバ勉強会03Webサーバ勉強会03
Webサーバ勉強会03
 
Web講座 第9回
Web講座 第9回Web講座 第9回
Web講座 第9回
 
新生Lagopus2017(仮称)
新生Lagopus2017(仮称)新生Lagopus2017(仮称)
新生Lagopus2017(仮称)
 
20151114 open cae@kansai
20151114 open cae@kansai20151114 open cae@kansai
20151114 open cae@kansai
 
Mercurial入門(前半)
Mercurial入門(前半)Mercurial入門(前半)
Mercurial入門(前半)
 
Circle ci and docker+serverspec
Circle ci and docker+serverspecCircle ci and docker+serverspec
Circle ci and docker+serverspec
 

More from Keisuke Oohata

Google SpreadSheetでtwitter bot作ったよ
Google SpreadSheetでtwitter bot作ったよGoogle SpreadSheetでtwitter bot作ったよ
Google SpreadSheetでtwitter bot作ったよKeisuke Oohata
 
今更だけどSqLite触ってみたよ
今更だけどSqLite触ってみたよ今更だけどSqLite触ってみたよ
今更だけどSqLite触ってみたよKeisuke Oohata
 
Kanazawa.rb 3周年KPT
Kanazawa.rb 3周年KPTKanazawa.rb 3周年KPT
Kanazawa.rb 3周年KPTKeisuke Oohata
 
イベント継続のコツ
イベント継続のコツイベント継続のコツ
イベント継続のコツKeisuke Oohata
 
ライフゲーム最後まで作ってみました
ライフゲーム最後まで作ってみましたライフゲーム最後まで作ってみました
ライフゲーム最後まで作ってみましたKeisuke Oohata
 
kanazawa.rb meetup #24 2 anniversary kpt
kanazawa.rb meetup #24 2 anniversary kptkanazawa.rb meetup #24 2 anniversary kpt
kanazawa.rb meetup #24 2 anniversary kptKeisuke Oohata
 
水平思考のススメ
水平思考のススメ水平思考のススメ
水平思考のススメKeisuke Oohata
 
ゆるふわっGit入門
ゆるふわっGit入門ゆるふわっGit入門
ゆるふわっGit入門Keisuke Oohata
 

More from Keisuke Oohata (10)

Google SpreadSheetでtwitter bot作ったよ
Google SpreadSheetでtwitter bot作ったよGoogle SpreadSheetでtwitter bot作ったよ
Google SpreadSheetでtwitter bot作ったよ
 
今更だけどSqLite触ってみたよ
今更だけどSqLite触ってみたよ今更だけどSqLite触ってみたよ
今更だけどSqLite触ってみたよ
 
Kanazawa.rb 3周年KPT
Kanazawa.rb 3周年KPTKanazawa.rb 3周年KPT
Kanazawa.rb 3周年KPT
 
イベント継続のコツ
イベント継続のコツイベント継続のコツ
イベント継続のコツ
 
Kzrb金庫番
Kzrb金庫番Kzrb金庫番
Kzrb金庫番
 
ライフゲーム最後まで作ってみました
ライフゲーム最後まで作ってみましたライフゲーム最後まで作ってみました
ライフゲーム最後まで作ってみました
 
kanazawa.rb meetup #24 2 anniversary kpt
kanazawa.rb meetup #24 2 anniversary kptkanazawa.rb meetup #24 2 anniversary kpt
kanazawa.rb meetup #24 2 anniversary kpt
 
Kzrb2周年目収支
Kzrb2周年目収支Kzrb2周年目収支
Kzrb2周年目収支
 
水平思考のススメ
水平思考のススメ水平思考のススメ
水平思考のススメ
 
ゆるふわっGit入門
ゆるふわっGit入門ゆるふわっGit入門
ゆるふわっGit入門
 

Shellを書こう 01 Shellcheckを使おう