远程运行时,grep命令不起作用

时间:2015-07-28 20:45:14

标签: bash unix rsh

我有一个这样的脚本:

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

基本上我想检查包含一些特定字符串的远程服务器中的文件。无论我输入“string”,它都不起作用并且总是显示“是”。

但是,如果我删除“rsh $ server”,这意味着在本地运行,并将该文件放入本地,它工作正常。

有谁知道问题是什么?我该如何修改我的脚本?

1 个答案:

答案 0 :(得分:1)

您可以使用远程文件中的数据在本地运行grep

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

如果文件很大,这将会很慢,因为整个文件必须通过网络发送,以便本地grep可以读取它。