今天在写shell脚本的时候碰到一个问题,利用while循环读取配置文件中的ip地址 然后ssh远程到该ip下,碰到了一个问题,当while一次循环结束的时候就跳出了循环,不再进行下一次循环。
代码示例:
while read content
do
echo $content
ssh 10.137.13.194 "cd /home"
done < modelList
解决方案1:ssh后放入垃圾箱
while read content
do
echo $content
ssh 10.137.13.194 "cd /home" > /dev/null < /dev/null 2>&1
done < modelList
解决方案2:利用for循环代替while循环
num=`cat modelList | wc -l `
for ((i=1;i<=$num;i++ ))
do
{
row="${i}p"
content=`cat modelList |sed -n $row `
ip=`echo "$content" | awk '{print $1}'`
model=`echo "$content" | awk '{print $2}'`
sh 10.137.13.194 "cd /home"
} done