通过ssh删除远程文件会停止命令所在的while循环?

问题描述

我有一个脚本,该脚本列出了超过10分钟前在远程磁盘上修改过的文件,在本地检索它们,然后应该在远程删除它们。 当我不删除文件时,脚本可以工作。 我添加删除文件的行后,循环仅处理一次(仅成功复制了一个文件,并且我收到确认其位于本地磁盘的消息),然后循环停止,没有任何错误消息。 拜托,知道为什么吗?

UNPIVOT

解决方法

默认情况下,ssh从作为输入文件的stdin读取,ssh占用文件的其余部分,并且for循环终止。

为防止这种情况,请将-n选项传递给ssh命令以使其从/dev/null而不是stdin读取。

在ssh手册页中:

-n从/ dev / null重定向标准输入(实际上,防止从标准输入读取)。在后台运行ssh时必须使用此选项。一种 常见的技巧是使用它在远程计算机上运行X11程序。 例如,ssh -n shadows.cs.hut.fi emacs&将在以下位置启动emacs shadows.cs.hut.fi,X11连接将自动 通过加密通道转发。 ssh程序将被放入 的背景。 (如果ssh需要请求一个 密码或密码短语;另请参阅-f选项。)

有关更多信息,请参见此thread

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...