- ベストアンサー
シェルスクリプトでwhileを用いてrshを繰り返し使う場合
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----------------------------------------------
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
rsh -n $line hostname ――にしてみては。詳しくはman rshをどうぞ。
その他の回答 (1)
- notnot
- ベストアンサー率47% (4900/10358)
rsh コマンドが標準入力を読むので、rshが初回の起動でhostB hostCまでデータを読んでしまいます。 #1の方のアドバイスのように -n をつけるか、 for line in hostA hostB hostC do rsh $line hostname done のようにするか。
お礼
ありがとうございました!お二人のアドバイスにより解決しました
お礼
manに書いてありましたね。失礼しました。。。