UNIXシェルスクリプト 第9章 Part1

リモートホストの状態をチェックする関数 CheckHostname.sh

_HOST=${1:-`hostname`}

引数($1)があれば代入。なければhostnameコマンドの結果を代入。

 

`uname -s`

OSの種類を判別するコマンド

 

pingコマンド

BSD系であれば-c1というオプションで1回だけ相手のホストにデータを送信する。

SunOSの場合はBSD系でもSolarisでも-cというオプションはない。

HP-UXの場合はpingの記述法が全く異なるので指定が必要。

 

FreeBSD | Linux | OSF1 | IRIX ) _PING= ...

case文の分岐は | を使ってまとめることができる。

 

if [ `_PING 2>&1 | grep -ci "Unknown host"` -eq 0 ]

2>&1 標準エラーを標準入力にリダイレクトする。

grep のオプション

 -c パターンにマッチした行の数だけを表示する。

 -i 大文字/小文字の区別を行わない

 

return $_PING >/dev/null 2>&1

pingの終了コード($?)と同じ値を返す。

成功すれば0、失敗すればそれ以外の値が出力される。