在bash脚本的IP地址的最后数字中附加变量

时间:2015-10-20 20:02:30

标签: bash ssh

我可以使用while循环通过SSH在网络中的每个IP地址上连接,然后在IP结束时将该计数器附加到该循环中,如下所示:

#!/bin/bash

while [ 0 -lt 1]
do
    a=`expr $a + 1`
    ssh user@172.18.10.$a
    echo connected
done

我几乎可以肯定它是错的,所以我试图找到正确的方法来做到这一点。 可以用更简单的方式完成,也许像列表一样使用ARP表并循环使用它吗?

2 个答案:

答案 0 :(得分:1)

#!/bin/bash

for a in $(seq 255)
do
    ssh user@172.18.10.$a true
    echo "Connected to 172.18.10.$a"
done

seq 255输出1到255之间的数字序列,然后迭代将变量a设置为每个值。

ssh命令中的

true是告诉ssh执行命令然后退出。如果您未指定命令,它将启动交互式会话,直到您退出它为止。您可以将其替换为您希望在每个主机上执行的任何命令。

答案 1 :(得分:0)

如果你真的想检查连接是否成功,你需要这样的东西

#!/bin/bash

for a in $(seq 255)
do
    ssh user@172.18.10.$a true && echo "Connected to 172.18.10.$a"
done