Bash 为什么带-c选项的grep总是通过ssh显示0

Bash 为什么带-c选项的grep总是通过ssh显示0,bash,grep,Bash,Grep,我在三个不同的服务器上有一个脚本。最基本的是脚本检查其系统上的某个文件,如果该文件不在那里,它将通过ssh连接到其他服务器并运行相同的脚本。检查通过以下方式运行: If[[$(ls${folder}|grep-c${file})-gt 0]];然后“处理文件”;else“ssh到其他服务器并再次检查”;fi 当信息在远程服务器上时,它不会给出输出。所以我在一台我知道有这些文件的服务器上运行了检查,它运行正常。但是,当我尝试远程运行它时,文件计数将为0 我把它从grep改为wc-l,然后它就工作了

我在三个不同的服务器上有一个脚本。最基本的是脚本检查其系统上的某个文件,如果该文件不在那里,它将通过ssh连接到其他服务器并运行相同的脚本。检查通过以下方式运行:

If[[$(ls${folder}|grep-c${file})-gt 0]];然后“处理文件”;else“ssh到其他服务器并再次检查”;fi

当信息在远程服务器上时,它不会给出输出。所以我在一台我知道有这些文件的服务器上运行了检查,它运行正常。但是,当我尝试远程运行它时,文件计数将为0


我把它从grep改为wc-l,然后它就工作了。我想知道是否有人知道为什么grep-c可以在本地工作,但是使用ssh时,它的“if”却不能这样工作。 如果要检查文件是否存在,必须使用以下选项:

[ -f ${file} ]

你到底是如何远程运行它的?根据您的操作方式,它可能在本地而不是远程运行部分或全部检查。