【发布时间】:2015-07-28 20:45:13
【问题描述】:
我有一个这样的脚本:
if rsh $server grep "string" /usr/path/file.txt
then
echo "yes"
else
echo "no"
fi
基本上我想检查远程服务器中包含一些特定字符串的文件。它不起作用,并且总是显示“是”,无论我放入“字符串”。
但是,如果我删除“rsh $server”,这意味着在本地运行,并将该文件放入本地,它可以正常工作。
有谁知道问题出在哪里?如何修改我的脚本?
【问题讨论】:
-
你确定你在测试 grep 退出代码,而不是 rsh 的?
-
rsh的退出状态只是连接是否成功,并不传递远程命令的退出状态。 -
你能用
ssh代替rsh吗?它会做你想做的。 -
找到
rsh的这个包装器,它获取远程退出状态:gist.github.com/schlomo/7908037 -
@Barmar 但如果我运行以下命令,它对 rsh 有效: rsh $server ps -fuctc | grep xxx | grep -v grep >/dev/null