Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix SFTP批处理…如果上一个命令失败,则取消命令_Unix_Batch File_Sftp - Fatal编程技术网

Unix SFTP批处理…如果上一个命令失败,则取消命令

Unix SFTP批处理…如果上一个命令失败,则取消命令,unix,batch-file,sftp,Unix,Batch File,Sftp,我正在运行一个SFTP批处理,以从一台unix服务器到另一台unix服务器获取一系列文件。我有一个构建批处理文件的shell脚本,如: cd path get filename cd path get filename 还有更多 如果前面的cd命令失败,SFTP中是否有方法不运行get命令,而是继续运行批处理的其余部分 明确地说,我不想终止整个SFTP批处理,只要一个get命令,如果它的相关cd命令不起作用。在每个cd检查错误代码之后,如果它是0,一切都很好。如果不是,则上一个命令中出现

我正在运行一个SFTP批处理,以从一台unix服务器到另一台unix服务器获取一系列文件。我有一个构建批处理文件的shell脚本,如:

cd path

get filename

cd path

get filename
还有更多

如果前面的cd命令失败,SFTP中是否有方法不运行get命令,而是继续运行批处理的其余部分


明确地说,我不想终止整个SFTP批处理,只要一个get命令,如果它的相关cd命令不起作用。

在每个cd检查错误代码之后,如果它是0,一切都很好。如果不是,则上一个命令中出现错误

比如:


O.P.指的是
sftp
内部的cmds。您无法在
sftp
中测试任何CMD的返回状态。(问题不清楚)。祝大家好运。哦。。。我认为没有办法在sftp客户机上查看。是的,如果我不清楚,我很抱歉……我需要能够从sftp本身内部执行此操作。既然这似乎是不可能的,我将研究其他选择。谢谢。我会混合使用
remDir=$(sshuser@remote“cd path;echo$PWD”)
,测试remDir是否具有您期望的值,然后
scp文件user@remote/$remDir
。评论太多了。你还有工作要做。告诉你的经理,安全的文件传输并没有无痛的灵丹妙药。祝你好运。我用ksh脚本构建了sftp批处理文件…我已经在循环列表来构建批处理文件,因此,在将现有循环中的每个路径添加到批处理文件之前检查它们不会有问题……我只是希望从sftp中处理它……脚本已经足够长了。
ftp
客户端是出了名的各种各样的动物。我对
sftp
客户不太确定。您是否执行了
man sftp
并阅读了
-b批处理文件
部分?Mine说“
可以通过在命令前面加一个“-”字符(例如,-rm/tmp/blah*)来逐个命令地抑制错误终止。”
。但我看不到类似shell条件的东西。YRMV。祝你好运
cd directory
if [!$?]
then
   get something
fi