linux-检查scp命令的状态代码,如果失败,则在另一台计算机上调用scp
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux-检查scp命令的状态代码,如果失败,则在另一台计算机上调用scp,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1601字,纯文字阅读大概需要3分钟。
内容图文
![linux-检查scp命令的状态代码,如果失败,则在另一台计算机上调用scp](/upload/InfoBanner/zyjiaocheng/946/9267899588144b2eaf5433c8a6dcc54d.jpg)
以下是我的shell脚本代码段,在其中我正在执行scp命令以将文件从machineB复制到machineA.
for element in ${x[$key]}; do # no quotes here
printf "%s\t%s\n" "$key" "$element"
if [ $key -eq 0 ]
then
scp david@machineB:/data/be_t1_snapshot/20131215/t1_$element_5.data /data01/primary/.
fi
done
我有一个非常简单的问题,在下面提到-
如果我的shell脚本中的以上scp命令由于任何原因使我出现此错误-没有此类文件或目录
然后我需要尝试从machineC进行scp,并且该scp命令将像这样,仅机器会有所不同,其他所有东西都将是相同的-
scp david@machineC:/data/be_t1_snapshot/20131215/t1_$element_5.data /data01/primary/.
所以我的问题是如何在我的shell脚本中检查上述scp命令的输出,然后决定是否需要从machineC调用scp命令?我是否可以使用某种状态检查,如果由于某种原因而失败,那么我可以在machineC上调用scp命令吗?
这可以在shell脚本中完成吗?
解决方法:
干得好:
for element in ${x[$key]}; do # no quotes here
printf "%s\t%s\n" "$key" "$element"
if [ $key -eq 0 ]
then
scp david@machineB:/data/be_t1_snapshot/20131215/t1_$element_5.data /data01/primary/. || scp david@machineB:/data/be_t1_snapshot/20131215/t1_$element_5.data /data01/primary/
fi
done
如果操作成功,行为良好的命令将以“成功”(退出代码= 0)退出,否则,将以退出代码!= 0退出.可以将命令链接在一起,如下所示:
cmd && echo successful || echo failed
cmd && keep going || do something else
退出代码也存储在$?中.变量,因此等效:
cmd; if $? = 0; then echo successful; else echo failed; fi
不仅如此,命令的状态码在shell脚本中也非常重要.考虑以下两个示例:
./configure && make && make install
./configure; make; make install
如果所有命令均成功,则第一个命令将执行命令链.即使先前的命令失败,第二个命令也将始终执行所有命令.
内容总结
以上是互联网集市为您收集整理的linux-检查scp命令的状态代码,如果失败,则在另一台计算机上调用scp全部内容,希望文章能够帮你解决linux-检查scp命令的状态代码,如果失败,则在另一台计算机上调用scp所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。