##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をインストールします。
##5.拡張機能のインストール
Visual Studio Codeインストール後に拡張機能をインストールします。
・Remote Development
リモート開発拡張パックを使用すると、コンテナー、リモートマシン、またはWindows Subsystem for Linux(WSL)内の任意のフォルダーを開いて、VSCodeの全機能セットを利用できる。これにより、どこにでもフルタイムの開発環境をセットアップできる。
IDE左枠の一番下からRemote Development Extension Packを検索してインストールします。以下拡張機能についても同様にして実施。
これをインストールするとRemote - WSL、Remote - Containers、Remote - SSHなどがインストールされます。
・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をインストールしているため、色分けやインデントについて直感的にわかりやすくなっている。
また、shellcheckをインストールしているため、構文についてもチェックしてくれる。
波線部にカーソルを充てるとホップアップが表示されるので、Quick Fixから参考文献を表示できる。
指摘について修正し、Visual Studio Code上で統合ターミナルを「ctrl + shift + `]キーで開き、シェルを実行する。
無事に期待する結果が得られた。