Bash While循环不循环

时间:2016-05-06 07:19:03

标签: bash

我正在使用bash为Mikrotik设备做备份脚本。我想使用一个从文件中读取的while循环。

要读取的文件的内容如下:

1.1.1.1 router1
2.2.2.2 router2

这是我的示例脚本:

while read -r ip name
do

sshpass -p "pass" ssh -o StrictHostKeyChecking=no export\@$ip "/export;/quit" 2> errors.log >> $name.export

done < iplistandnamefile

问题是该脚本仅适用于iplistandnamefile文件中的第一个IP地址,但不会循环到第二个IP。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

ssh正在吃掉文件的其余部分,因为它默认为读取stdin

将-n添加到ssh命令。

sshpass -p "pass" ssh -no StrictHostKeyChecking=no user@host command_to_run