whoisコマンドでドメイン情報を抜いてくると、ネームサーバが複数設定されていることがあります。
$ whois yahoo.co.jp [ JPRS database provides information on network administration. Its use is ] [ restricted to network administration purposes. For further information, ] [ use 'whois -h whois.jprs.jp help'. To suppress Japanese output, add'/e' ] [ at the end of command, e.g. 'whois -h whois.jprs.jp xxx/e'. ] Domain Information: [ドメイン情報] a. [Domain Name] YAHOO.CO.JP ・・・ p. [Name Server] ns01.yahoo.co.jp p. [Name Server] ns02.yahoo.co.jp p. [Name Server] ns11.yahoo.co.jp p. [Name Server] ns12.yahoo.co.jp ・・・
Name Serverと書いてある行をgrepして文字列取得すると一つの文字列にしてしまうので、 複数にバラしたいと思いました。
CHECK_SERVER=`whois $check | grep "Name Server" | cut -c 17- | tr -d " "| sed "s/$/ /g" | tr -d "\r"` set -- $CHECK_SERVER CHECK_SERVER1=`echo $1` CHECK_SERVER2=`echo $2` ・・・ echo $CHECK_SERVER1 echo $CHECK_SERVER2 ・・・
setで空白ごとに切り離しができますので、これらを取得します。 上記は管理するドメインの持つネームサーバ数が二つまでの場合ですので、それ以上の場合は変数を増やせばいいと思います。
参考:シェルスクリプトの中で1行ずつ変数を分割する際には、cutとかawkとか余計なプロセスを起動せずsetを使って分割した方が効率的