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、失敗すればそれ以外の値が出力される。