patorashのブログ

方向性はまだない

シェルスクリプトを書くときのおまじない

最近、他の人がRundeckに登録していたジョブを修正していってるのだが、bundle installとかherokuコマンドが動かなかったりしたので、動かしているジョブではどうやっているのかなと思ったら、以下のように書いてあった。

/bin/bash -l -c 'bundle install'

-lはログイン状態のシェルで-cは引数のコマンドを実行するということだったのだけれど、場合によっては、これを複数行書いているようだった。

/bin/bash -l -c 'なにかの処理1'
/bin/bash -l -c 'なにかの処理2'
/bin/bash -l -c 'なにかの処理3'

うーむ、シェルスクリプトって普通、先頭に#!/bin/bashとか書くんじゃなかったっけ?と思いながら調べたら、1行目のオプションで-lをつければそれでいいらしい。

#!/bin/bash -l
set -Ceu

なにかの処理1
なにかの処理2
なにかの処理3

set -Ceuは、間違ってファイルを上書きしたりしないようにとか、エラーが起きたら落ちるようにするためのものらしい。基本、つけておいたほうが安心だなと思ったので付ける。

qiita.com

これで綺麗な感じでシェルスクリプトが書けるようになってきたのでよかった。