隙あらば寝る

うぇぶのかいしゃではたらくえんじにあがかいています

シェルスクリプトのフォーマッタ

github.com

gofmtのshellscript版。

go get -u github.com/mvdan/sh/cmd/shfmt

でインストールするとshfmtコマンドが利用可能になる。

例えば

#!/bin/bash

function test {
    echo $1
}

for i in 1 2 3
do
    test $i
done

に対して適用すると

#!/bin/bash

function test() {
        echo $1
}

for i in 1 2 3; do
        test $i
done

といった感じになる。

パット見わかりにくいかもしれないが、functionの引数部分に()が付いたり、forで使うdoの位置がフォーマットされている。

細かい書き方を統一するためにとりあえずshfmtを通しておくというのは良いと思う。

golangに慣れるとフォーマッタがない言語は考えることが多くて面倒だと考えるようになってしまったので

こういうアプローチは助かる。