/var/log/messages

debugging with sixth sense

Bash での文字列比較

git status して更新のチェックしてるんですが、対象外になるファイルが複数になってて比較な条件書くのにちょっとまごまごしたので自分メモを。

git status の出力を確保しておいて

GITSTATUS=`git status --porcelain`

この出力によれば修正が自分と string.xml のみであれば OK としたかったのですが

echo "$GITSTATUS"

ってすると

M hoge.sh
M res/values/strings.xml

って出力されてしまって

"M hoge.sh M res/values/strings.xml"

とはマッチせずでむむむむ状態だったのですが、以下で良かった模様。

if [ "$(echo $GITSTATUS)" != "M hoge.sh M res/values/strings.xml" ]; then
  # 処理中止
fi

もっと格好良いやり方がありそげですが、自分メモ、ということにて。

Comments