Bash脚本在命令失败时退出(sshpass)

用户名

我需要通过SSH在服务器列表上执行操作。

我正在使用sshpass,该操作可能会失败,但是应该会发生几次,并且脚本仍应继续。

#!/bin/bash

while read address; do
    echo -n "$address "
    sshpass -p password ssh -o StrictHostKeyChecking=no [email protected]$address 'ls /path/to/some/dir'
done < address-list

但是,该命令在第一个主机上通过ssh失败,脚本立即退出。

无论如何,如何让循环继续执行?在我的命令后添加出口不能解决此问题,并且在错误时取消设置出口set +e也不起作用。

库萨兰达

ssh将从循环中继承标准输入流,并从该循环中读取尽可能多的数据,这意味着它将从您的address-list文件中读取剩余的行由于ssh正在从文件中读取剩余的行,因此循环只会执行一次迭代。从技术上讲,该脚本不会过早终止或以任何方式失败,它只是不执行您希望执行的操作。

为避免这种情况,请使用ssh -n防止ssh从标准输入中读取:

while read address; do
    echo -n "$address "
    sshpass -p password ssh -n -o StrictHostKeyChecking=no "[email protected]$address" 'ls /path/to/some/dir'
done < address-list

ssh 这样,您就可以将数据传递到在远程主机上启动的某些程序中,但是正如您所发现的,在这种情况下,这将使您的循环无法正常运行。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

“源脚本”不支持“#!/bin/bash -ex”并在命令失败时退出

来自分类Dev

子脚本之一失败时不退出bash脚本

来自分类Dev

当其中的任何命令失败时,如何使 shell 脚本退出?

来自分类Dev

如何将sshpass命令放入bash脚本中?

来自分类Dev

在脚本中退出bash命令而不退出脚本

来自分类Dev

在脚本中退出bash命令而不退出脚本

来自分类Dev

运行easy_install PIL时,出现错误:安装脚本退出,错误:命令'cc'失败,退出状态为1

来自分类Dev

运行easy_install PIL时,出现错误:安装脚本退出,错误:命令'cc'失败,退出状态为1

来自分类Dev

进程检查失败时退出Shell脚本

来自分类Dev

sshpass失败,退出代码为6

来自分类Dev

命令失败时尽早退出管道

来自分类Dev

为什么我感到困惑“当命令在BASH中失败时,退出状态代码为0”

来自分类Dev

bash脚本可以在退出时用命令预填充提示吗?

来自分类Dev

从bash调用R脚本时退出代码

来自分类Dev

Bash脚本(使用Java命令)不会退出(脚本2)

来自分类Dev

如何避免Shell脚本因特定命令失败而退出

来自分类Dev

bash脚本中的Expect命令失败

来自分类Dev

bash脚本中的Expect命令失败

来自分类Dev

当运行带有嵌入式引号(源参数)的命令时,Bash脚本失败

来自分类Dev

安装脚本退出并显示错误:安装PyNaCl时,命令'x86_64-linux-gnu-gcc'失败,退出状态为1

来自分类Dev

退出脚本时杀死bash脚本中的后台进程

来自分类Dev

检查bash脚本回显的命令的最后退出代码

来自分类Dev

Bash脚本不会在输入命令中退出

来自分类Dev

Bash:在`-e`脚本中保存命令的退出代码

来自分类Dev

检查bash脚本回显的命令的最后退出代码

来自分类Dev

从bash脚本导航/退出命令行配置屏幕

来自分类Dev

执行ln -s命令的bash脚本在退出时获得错误代码,但符号链接已成功创建

来自分类Dev

Shell脚本在失败时不记录Java退出状态

来自分类Dev

当SQL查询失败时,Shell脚本循环结束文件以退出

Related 相关文章

  1. 1

    “源脚本”不支持“#!/bin/bash -ex”并在命令失败时退出

  2. 2

    子脚本之一失败时不退出bash脚本

  3. 3

    当其中的任何命令失败时,如何使 shell 脚本退出?

  4. 4

    如何将sshpass命令放入bash脚本中?

  5. 5

    在脚本中退出bash命令而不退出脚本

  6. 6

    在脚本中退出bash命令而不退出脚本

  7. 7

    运行easy_install PIL时,出现错误:安装脚本退出,错误:命令'cc'失败,退出状态为1

  8. 8

    运行easy_install PIL时,出现错误:安装脚本退出,错误:命令'cc'失败,退出状态为1

  9. 9

    进程检查失败时退出Shell脚本

  10. 10

    sshpass失败,退出代码为6

  11. 11

    命令失败时尽早退出管道

  12. 12

    为什么我感到困惑“当命令在BASH中失败时,退出状态代码为0”

  13. 13

    bash脚本可以在退出时用命令预填充提示吗?

  14. 14

    从bash调用R脚本时退出代码

  15. 15

    Bash脚本(使用Java命令)不会退出(脚本2)

  16. 16

    如何避免Shell脚本因特定命令失败而退出

  17. 17

    bash脚本中的Expect命令失败

  18. 18

    bash脚本中的Expect命令失败

  19. 19

    当运行带有嵌入式引号(源参数)的命令时,Bash脚本失败

  20. 20

    安装脚本退出并显示错误:安装PyNaCl时,命令'x86_64-linux-gnu-gcc'失败,退出状态为1

  21. 21

    退出脚本时杀死bash脚本中的后台进程

  22. 22

    检查bash脚本回显的命令的最后退出代码

  23. 23

    Bash脚本不会在输入命令中退出

  24. 24

    Bash:在`-e`脚本中保存命令的退出代码

  25. 25

    检查bash脚本回显的命令的最后退出代码

  26. 26

    从bash脚本导航/退出命令行配置屏幕

  27. 27

    执行ln -s命令的bash脚本在退出时获得错误代码,但符号链接已成功创建

  28. 28

    Shell脚本在失败时不记录Java退出状态

  29. 29

    当SQL查询失败时,Shell脚本循环结束文件以退出

热门标签

归档