1

次のようなスクリプトがあります。

if rsh $server grep "string" /usr/path/file.txt
then
   echo "yes"
else
   echo "no"
fi

基本的に、特定の文字列を含むリモートサーバーのファイルをチェックしたいと思います。「文字列」に入れたものは何でも機能せず、常に「はい」と表示されます。

ただし、ローカルで実行することを意味する「rsh $server」を削除し、そのファイルをローカルに配置すると、正常に動作します。

誰が問題が何であるか知っていますか?スクリプトを変更するにはどうすればよいですか?

4

1 に答える 1

2

grepリモート ファイルのデータを使用してローカルで実行できます。

if rsh $server cat /usr/path/file.txt | grep "string"
then
    echo "yes"
else
    echo "no"
fi

ファイルが大きい場合、ローカルgrepが読み取れるようにファイル全体をネットワーク経由で送信する必要があるため、これは遅くなります。

于 2015-07-28T21:04:28.910 に答える