Cシェル使ってきました。

一週間の期限つきトラブル対応支援が終わりました。

リーダー「シェル作ったことある?」私「bashなら何度か…」 →ふたを開けてみればcsh\(^o^)/

Twitter / tmftake: リーダー「シェル作ったことある?」私「bashなら何度か…」 ...

そんなわけで久々にシェル触りました。cshでもまぁ何とかなるもんですね。
…と言うわけで備忘録。

変数に値が設定されているか確認する

phpでいうとissetでしょうか。空文字列との比較だとエラーになるから焦った。

if (${?hoge}) then
  #...
endif

ファイル存在チェック

条件分岐で-f,-d,-eなどでチェック。
foreach file (./hoge /etc/fuga)
  if (! -f ${file}) then
    echo ${file} not found.
    exit -1
  endif

  source $file
end

対象ファイルが複数の場合、lsのリターンコードでチェック。

ls -1t hoge/* >& /dev/null
if (${status} != 0) then
  echo ${file} not found.
  exit -1
endif

あとはcut,sed,grepなどを駆使して何とかしてきました。

Cライクを謳ってるのにif-then-endifとかどういうこと!(笑
あとはfor文がないのに驚き。foreachとwhileで何とかなるので気にならなかった。

        • -

支援に行く前に自分の担当作業についてどうするかリーダーと話をして、残りのメンバーでなんとかすると言ってくれてたんですがが…

元の職場に帰ってきてみると、支援で抜けてた5日丸々遅れてる件!

…もうトラブルはいやぽ。