44
48

More than 3 years have passed since last update.

VSCodeを使用したシェルスクリプトの開発環境作成

Last updated at Posted at 2020-10-01

1.背景

現場で"シェルスクリプトお願いします\(^_^)/"と唐突に言われたものの
私はシェルはおろかunix系コマンドも必要最低限でしか使用したことがない。

仕方がないのでとりあえずbashの電子書籍を1冊購入し
後はググればなんとかなるだろう(なんとかしてくれ)と思っていたら無事に死亡しました。

その時の反省や感じたことを踏まえて"あの時こうしておけばよかった"と感じたことを共有します。

2.失敗したこと

何がいけなかったのか、下記に記載します。

  • コードを書くスピードが遅い
     とにかく納期に間に合わないです。
     元々作業スピードは遅いのですが、行き当たりばったりの乏しい知識でスクリプトをコネコネやっていたのが間違いでした。
     

  • 何が正しいのか曖昧なので現場で通用するレベルの品質のコードに達しない
     製造分についてレビューいただく際に、"こんなのダメダメ~ダメぽよまるぅ~"と言われてしまいました。
     一応動きはするのですが、製造品質の観点からNG分が多発していたようです。

3.改善策

Javaを書くときにメモ帳を使用しますか? しませんよね。
大体の人はInteliJとかEclipseを使用してJavaのコードを書くと思います。

自分がやっていたのは上記設問のyesに近く、viエディタを使用してスクリプトをコネコネしていました(メモ帳よりは随分とましですが)
結果として「トライ&エラー」に時間がかかり、コードを書くスピードが遅くなってしまっていました。

そこで、bash IDEの拡張機能が存在するVisual Studio Codeをインストールすることにしました。

4.Visual Studio Codeのインストール

自身のOS環境で使用可能なVisual Studio Codeをインストールします。

Visual Studio Code インストール先リンク

5.拡張機能のインストール

Visual Studio Codeインストール後に拡張機能をインストールします。

Remote Development

リモート開発拡張パックを使用すると、コンテナー、リモートマシン、またはWindows Subsystem for Linux(WSL)内の任意のフォルダーを開いて、VSCodeの全機能セットを利用できる。これにより、どこにでもフルタイムの開発環境をセットアップできる。

IDE左枠の一番下からRemote Development Extension Packを検索してインストールします。以下拡張機能についても同様にして実施。
これをインストールするとRemote - WSL、Remote - Containers、Remote - SSHなどがインストールされます。

image.png

Bash IDE

TreeSitterとそのBashの文法に基づいており、explainshell統合をサポートするbash言語サーバーを利用するVisual StudioCode拡張。

shellcheck

静的解析によりシェルスクリプトの問題点を分析し、より良い書き方を提案してくれる CLI の Linter ツール。
構文の問題点やバグだけでなく、推奨されない書き方も教えてくれる。
シェルスクリプトの初心者・上級者に関わらず、入れておくだけで安心してスクリプトを書けるようになる。

6.実用例

筆者はWindows OSなので、動作確認のためWSLでLinux環境を用意し、Visual Studio Code上でLinux環境へアクセスする。
ssh接続の際はSSH Targetを指定すること。

サンプルとして/home/ckhaorus/work直下にsample.shを作成した。
指定のディレクトリ直下のファイル名のみ取得する簡単なスクリプトとなっている。
拡張機能のbash IDEをインストールしているため、色分けやインデントについて直感的にわかりやすくなっている。
image.png

また、shellcheckをインストールしているため、構文についてもチェックしてくれる。

波線部にカーソルを充てるとホップアップが表示されるので、Quick Fixから参考文献を表示できる。
image.png
image.png

指摘について修正し、Visual Studio Code上で統合ターミナルを「ctrl + shift + `]キーで開き、シェルを実行する。

image.png

無事に期待する結果が得られた。

44
48
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
44
48