dポイントプレゼントキャンペーン実施中!

Bシェルスクリプトでリモートシェル(rsh)を使う場合の質問です。
現在、以下のような状態です。
有識者の方、アドバイスをお願いします。
・Aでは、ループされずhostAの場合のみ処理がされます。
(while文が効いていない)
・Bでは、ループされて問題なくhostA,hostB,hostCが処理されます。
(while文が効いている)

なぜなのでしょうか。。。(r系コマンドの特性?)
ちなみり、リモート側のサーバには.rhostsが設定してあり
問題なくコマンドが通ることは確認済みです。


スクリプトA----------------------------------------------
#!/bin/sh
while read line ;
do
rsh $line hostname
done <<END
hostA
hostB
hostC
END
スクリプトA----------------------------------------------

スクリプトB----------------------------------------------
#!/bin/sh
while read line ;
do
echo " HOST=$line"
done <<END
hostA
hostB
hostC
END
スクリプトB----------------------------------------------

A 回答 (2件)

rsh -n $line hostname


――にしてみては。詳しくはman rshをどうぞ。
    • good
    • 0
この回答へのお礼

manに書いてありましたね。失礼しました。。。

お礼日時:2006/11/27 19:34

rsh コマンドが標準入力を読むので、rshが初回の起動でhostB hostCまでデータを読んでしまいます。


#1の方のアドバイスのように -n をつけるか、

for line in hostA hostB hostC
do
rsh $line hostname
done
のようにするか。
    • good
    • 0
この回答へのお礼

ありがとうございました!お二人のアドバイスにより解決しました

お礼日時:2006/11/27 19:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!