跳转至

while 循环中使用ssh命令自动退出


2014-01-02 by dongnan

环境描述

文本文件:

cat hosts.txt

# 返回结果
10.0.0.1
...
10.0.10

脚本内容:

#!/bin/bash

while read line;do
    echo $line;
    ssh $line "some command";
done < hosts.txt

问题描述

shell脚本使用while循环取文本文件,文本文件每行一个ip10行, while循环内每次通过ssh执行一些命令,发现ssh命令只执行一次就会自动退出shell脚本。

解决方法

修改脚本,添加一个输入重定向:

#!/bin/bash

while read line;do
    echo $line;
    ssh $line "some command"  < /dev/null;  # 这里
done < hosts.txt

这样 while循环可以遍历全部的主机了。

回到页面顶部