linux脚本跳出循环语句,跳出循环的命令

linux脚本跳出循环语句,跳出循环的命令1 exit 退出循环 同时也会退出脚本 root shell scripts shell day31 catexit sh bin bashforiin 1 3 doecho 123 exitecho 456 doneecho 脚本执行结束 root shell scripts shell day31 shexit sh1232 break

1. exit #退出循环,同时也会退出脚本

[root@shell /scripts/shell-day31]# cat exit.sh

#!/bin/bash

for i in {1..3}

do

echo “123”

exit

echo “456”

done

echo “脚本执行结束”

[root@shell /scripts/shell-day31]# sh exit.sh

123

2. break#跳出当前循环,继续执行循环以外的命令

[root@shell /scripts/shell-day31]# cat break.sh

#!/bin/bash

for i in {1..3}

do

echo “123”

break

echo “456”

done

echo “脚本执行结束”

[root@shell /scripts/shell-day31]# sh break.sh

123

脚本执行结束

3. continue#跳出本次循环,不继续执行循环的剩余代码。继续执行下一次的循环。

[root@shell /scripts/shell-day31]# cat continue.sh

#!/bin/bash

for i in {1..3}

do

echo “123”

continue

echo “456”

done

echo “脚本执行结束”

[root@shell /scripts/shell-day31]# sh continue.sh

123

123

123

脚本执行结束

4. 先扫描10.0.0.0/24网段内的主机,存活的主机则下发公钥。

1. 先判断是否存在密钥,没有则进行创建密钥对,有则跳过

2. 批量探测主机是否存活,存活则判断远程端口是否开放

3. 主机存活且端口开放的主机则分发公钥

4. 判断是否发送成功

如何免交互式的进行创建密钥对

-f filename #指定私钥文件保存的路径

-N new_passphrase #指定一个新的密码

ssh-keygen  -t rsa -f /root/.ssh/id_rsa -N “”

如何免交互式的分发公钥

-o StrictHostKeyChecking=no #忽略回复yes的交互(避免第一次交互出现 公钥检查)

sshpass -p #指定密码为,忽略交互

yum install -y sshpass

sshpass -p1  ssh-copy-id -i /root/.ssh/id_rsa.pub  -o “StrictHostKeyChecking=no”  root@10.0.0.7

[root@shell /scripts/shell-day31]# cat fenfa.sh

#!/bin/bash

#1.引用函数库

[ -f /etc/init.d/functions ] && source /etc/init.d/functions || echo “函数库文件不存在!”

#2.判断是否存在秘钥对

if [ -f /root/.ssh/id_rsa.pub ] && [ -f /root/.ssh/id_rsa ];then

action “密钥对文件存在!” /bin/true

else

rm -rf /root/.ssh &>/dev/null

ssh-keygen  -t rsa -f /root/.ssh/id_rsa -N “” &>/dev/null

if [ $? -eq 0 ];then

action “已经创建新的密钥对!”  /bin/true

else

action “新的密钥对创建失败!”  /bin/false

exit

fi

fi

#3.批量探测主机是否存活

Ip_log=/tmp/ip.log

>$Ip_log

i=1

while [ $i -le 254 ]

do

{

IP=10.0.0.$i

ping -c1 -W1 $IP &>/dev/null

if [ $? -eq 0 ];then

action “${IP}主机是存活的………..” /bin/true

echo “$IP” >>$Ip_log

fi

}&

let i++

sleep 0.1

done

wait

while read line

do

State=$(nmap -p22 $line | awk ‘/^22/{print $2}’)

if [ $State == “open” ];then

action “主机地址${line}远程端口是开放的……..” /bin/true

sshpass -p1  ssh-copy-id -p22 -i /root/.ssh/id_rsa.pub  -o “StrictHostKeyChecking=no”  root@$line &>/dev/null

if [ $? -eq 0 ];then

action “主机地址${line}公钥发送成功……..” /bin/true

else

action “主机地址${line}公钥发送失败……..” /bin/false

fi

else

action “主机地址${line}远程端口是关闭的……..” /bin/false

fi

done < $Ip_log

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232193.html原文链接:https://javaforall.net

(0)
上一篇 2025年10月26日 下午7:01
下一篇 2025年10月26日 下午7:22


相关推荐

  • 三种线程安全的List

    三种线程安全的List在单线程开发环境中 我们经常使用 ArrayList 作容器来存储我们的数据 但它不是线程安全的 在多线程环境中使用它可能会出现意想不到的结果 多线程中的 ArrayList 我们可以从一段代码了解并发环境下使用 ArrayList 的情况 publicclassC publicstatic String args throwsInterr List Integer l Integer

    2026年3月18日
    2
  • 什么是 Hook 技术

    什么是 Hook 技术一、什么是Hook技术  Hook技术又叫做钩子函数,在系统没有调用该函数之前,钩子程序就先捕获该消息,钩子函数先得到控制权,这时钩子函数既可以加工处理(改变)该函数的执行行为,还可以强制结束消息的传递。简单来说,就是把系统的程序拉出来变成我们自己执行代码片段。  要实现钩子函数,有两个步骤:  1.利用系统内部提供的接口,通过实现该接口,然后注入进系统(特定场景下使用)  2.动态代理(使用所有场景)二、Hook技术实现的步骤  Hook技术实现的步骤也分为两步  1.找到ho

    2022年5月13日
    43
  • matlab三个自变量拟合函数_matlab拟合二元函数

    matlab三个自变量拟合函数_matlab拟合二元函数如何用matlab数据拟合函数?用matlab求解多元线性方程www.zhiqu.org时间:2020-12-08Matlab有一个功能强大的曲线拟合工具箱cftool,使用方便,能实现多种类型的线性、非线性曲线拟合。下面结合我使用的MatlabR2007b来简单介绍如何使用这个工具箱。假设我们要拟合的函数形式是y=A*x*x+B*x,且A>0,B>0…

    2025年9月26日
    9
  • 一个普通Android程序员的2018总结2019计划

    一个普通Android程序员的2018总结2019计划承接去年总结:一个普通Android程序员的20182018:总结这一年继续分三个方面吧:职场篇:这一年发生了很多事,上家公司团队经营问题,最终结果是团队解散,期间发生一系列事情,参照一个普通一个Android程序员的心酸历程(2018.5.1)。然后修整两个月,找到了现在这家公司,公司目前规模不大,但各方面管理和上家公司天壤之别,至少目前我工作过的公司里面,算是最好的了,工资不是很高,…

    2022年6月14日
    41
  • Win10 桌面美化

    Win10 桌面美化Win10桌面美化最近发现了几款Win10界面美化的软件,看了看别人家的Win10操作界面,瞬间觉得自己的low了,关键是赏心悦目啊!废话不多说,先看看我原来桌面和美化后的桌面对比图原始桌面美化桌面1.安装RocketDockRocketDock可以提供类似macos的操作系统图标特效,打开安装包进行安装,完毕后启动得到效果如下:可以发现切换效果与mac类似,他默认的主题是C…

    2022年4月25日
    53
  • java bufferedwriter 关闭_Java BufferedWriter.close()方法示例

    java bufferedwriter 关闭_Java BufferedWriter.close()方法示例JavaBufferedWriter.close()方法示例BufferedWriter的JavaBufferedWriter.close()方法的语法如下。publicvoidclose()throwsIOException示例在下面的代码中展示了如何使用BufferedWriter.close()方法。importjava.io.BufferedWriter;import…

    2022年5月10日
    35

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号