quecksilber回答ポイント 180ptウォッチ 1

下記のようなシェルスクリプトを書きました。

「ID: ホスト名 IP」という書式のリストが作成されると言う意図なのですが、どうしても読み込んだリストの一番最初のレコードしか記録されず悩んでいます。
どうすればよいのでしょうか、おしえてください。環境はCentOS5.3 / Bash3.2のようです。

コード

#!/bin/bash

LIST=/foo/bar/list.txt
echo -n > /foo/bar/test.dat
_CNT=0

while read line;
do
if [[ "$line" =~ "^[^#]" ]] ; then
HOSTn=`echo $line | awk '{print $1}';`
ADDR=`ssh $HOSTn ifconfig -a | awk '/(cast)/ { print $2 }' | cut -d':' -f2 | head -1`

if [ "$ADDR" != "" ] ; then
echo "$_CNT: $HOSTn $ADDR" >> /foo/bar/test.dat
fi
fi
_CNT=`expr $_CNT + 1`

done < $DBLIST

list.txtの内容(#はコメントアウトとして扱う)

host1
host2
host3
# host4
host5
host6
.
.
.

※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。
ログインして回答する

みんなの回答

この質問へのコメント

この質問への反応(ブックマークコメント)

質問の情報

登録日時
2009-07-10 21:39:57
終了日時
2009-07-12 22:16:45
回答条件
1人5回まで

この質問のカテゴリ

この質問に含まれるキーワード

シェルスクリプト132AWK32SSH565bash151コメントアウト96IP902レコード916

人気の質問

メニュー

PC版