おそらくはそれさえも平凡な日々

POSIX sh準拠のシェルスクリプトを書くときに checkbashisms が便利。

http://sourceforge.net/projects/checkbaskisms/

#!/bin/sh なのにbashでしか動かないシェルスクリプトを書くな!」みたいなことはよく言われるわけですが、僕はゆとりなので正直どうでもええやろとか思ったりもしてました。実際、CentOSだと、/bin/sh/bin/bash へのリンクだし、OSXでも /bin/sh の実態はbashだしね。

しかしそこで立ちふさがるのがUbuntu。Ubuntuだとデフォルトで /bin/sh/bin/dash だったりするわけです。dashはPOSIX準拠のsh実装で、bash独自の記述があると見事に動かない。

とはいえ、それで困るのだったら、デフォルトシェルをbashにしたVMテンプレートを作ればいいんじゃないかって思うやろ。僕もそう思う。

しかしそこで立ちふさがるのがTravisで、TravisのベースイメージはUbuntuなのでdashだし、bashは入ってない。( sudo apt-get install bash する手はあるけど)

ということで、Travisでちょっとしたシェルスクリプトを実行する際には、POSIX sh準拠のシェルスクリプトを書かないといけない。

そういう時に便利なのが checkbashisms でこれを使うことで、シェルスクリプトがPOSIX準拠になってるかどうか、ある程度チェックしてくれます。

という備忘録。

created at
last modified at

2015-09-20T14:19:56+0900

comments powered by Disqus