« xargs [ファイル管理コマンド] | トップページ | [mysql] やる夫がスロークエリログを見やすくするようです。 »

2008-04-25

[shell] やる夫がcase文でshellを作成したようです。

case文でホスト名判定して、処理を変える

最近ネタがない・・・。下記のようなshellを作ることがあったのでカキマスタ。

例えばやる夫のサービス環境が下記のような感じで、各サーバの用途によってshellの実行結果を変更したいとき、case文を使ってみては如何でしょうか?

  • indigo05 ~ indigo08 サーバはwebサーバ
  • navyblue1 ~ navyblue4 サーバはaplサーバ

          ____
       / \  /\ キリッ
.     / (ー)  (ー)\
    /   ⌒(__人__)⌒ \   iti is not a pertinent server...
    |      |r┬-|    |  
     \     `ー'´   /   
    ノ            \
  /´               ヽ
 |    l              \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))

          ____
        /_ノ  ヽ、_\
 ミ ミ ミ  o゚((●)) ((●))゚o      ミ ミ ミ
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\   /⌒)⌒)⌒)
| / / /     |r┬-|    | (⌒)/ / / //  だっておwwwwwwwwwwwwwww
| :::::::::::(⌒)    | |  |   /  ゝ  :::::::::::/
|     ノ     | |  |   \  /  )  /
ヽ    /     `ー'´      ヽ /    /     バ
 |    |   l||l 从人 l||l      l||l 从人 l||l  バ   ン
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、    ン
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))

標準出力って普通英語で書きますよね(もちろんエキサイト翻訳)・・・。日本語で出力すれば親切かと思いきや人によって、リモートツールの文字コードがバラバラなので、英語で書いて上げるのが親切だと思っています。

英語で書いて気取ってるんじゃねぇ~よって言う、やる夫の考えは実は間違え・・・。

# vi sample_case.sh
-----
### hostname set
nodename=`hostname`

###-----
### deploy
case "$nodename" in

    ### indigo05~indigo08サーバにmatch
    indigo0[5-8])
        echo "yaruo_1"  ※ココに処理を書く
        ;;

    ### navyblue1~naviblue4サーバにmatch
    navyblue[1-4])
        echo "yaruo_2"
        ;;

    ### 上記matchしなかったサーバ
    *)
        echo "it is not a pertinent server..."
        exit 1
        ;;

esac
-----

|

LINUX コマンド」カテゴリの記事

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/488651/20551124

この記事へのトラックバック一覧です: [shell] やる夫がcase文でshellを作成したようです。:

コメント

コメントを書く