最近、他の人が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
は、間違ってファイルを上書きしたりしないようにとか、エラーが起きたら落ちるようにするためのものらしい。基本、つけておいたほうが安心だなと思ったので付ける。
これで綺麗な感じでシェルスクリプトが書けるようになってきたのでよかった。