[Mac] 在 Sublime Text 3 中安裝 shellcheck plugin
今天看到同事推薦可以在 Sublime Text 上安裝 shellcheck 這個 plugin,
來檢查自己的 shell script 有沒有一些簡單的錯誤,
感覺不錯用,就來安裝試試看~
1. 安裝 SublimeLinter
SublimeLinter 是一個主架構,在這架構下可以有一堆的 Linter,
像是給 python 用的 pylint,給 shell script 用的 shellcheck 等等~
先開啟 Sublime Text,到 Tool > Command Palette 那邊打 Package install~
如果還沒裝過 Package Control 套件的話,可以參考 Package Control Installation 這邊:
選擇 Package Control: Install package,找到 SublimeLinter 來安裝~
注意要選到敘述是「Interactive code linting framework…」的,
不要選到是附屬於 Linter 的 plugin 的~
2. 安裝 shellcheck 執行檔
之後要安裝的 shellcheck plugin 會用到 shellcheck 這個執行檔,
要安裝的話可以參考 shellcheck 首頁上的幾個方法,我用的是 Homebrew:
brew install shellcheck
這邊有個小插曲是 brew 安裝好 shellcheck 似乎沒有問題,
但後來發現我的 shellcheck 執行檔是無法執行的…
幸好後來重新編譯了某個相依的套件而解決了問題,
可以參考 解決 Library not loaded: libgmp.10.dylib 的問題 這篇~
3. 安裝 SublimeLinter – shellcheck plugin
類似安裝 SublimeLinter 的步驟,將 shellcheck 這個 linter plugin 裝好:
在使用 Package Control 安裝套件時,
最好將 Sublime Text > View > Show Console 打開,
這樣子一些安裝的相關訊息會顯示出來,
之前 shellcheck plugin 沒有成功執行的訊息也是這樣才看到的~
正確的話,應該會看到 shellcheck linter reloaded 或是 activated 的字眼~
4. 使用 shellcheck 檢查 shell script 中的錯誤
shellcheck 似乎會自動判斷目前檔案是不是 shell script,並偵測錯誤~
不過也可以用 Sublime Text > Command Palette > SublimeLinter: Lint This View,
立刻檢查目前的檔案:
可以看到下面短短的 shell script 就被偵測出錯誤,
在左邊有橘紅色的標誌,下方也列出了錯誤的原因,
建議我們用 $(…) 的方式取代`…` 的語法~
這次雖然安裝 shellcheck 時有遇到一些 homebrew 造成的問題,
不過也都順利解決,plugin 用起來感覺也不錯用喔~^^