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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 什么是javabean及其用法

    什么是javabean及其用法一、什么是JavaBean  JavaBean是一个遵循特定写法的Java类,它通常具有如下特点:这个Java类必须具有一个无参的构造函数 属性必须私有化。 私有化的属性必须通过public类型的方法暴露给其它程序,并且方法的命名也必须遵守一定的命名规范。javaBean范例:1packagegacl.javabean.study;23/**4…

    2022年7月17日
    12
  • struts2拦截器详解_struts拦截器配置

    struts2拦截器详解_struts拦截器配置当我们在intercepter内使用“returninvocation.invoke();”进行拦截器释放,线程会继续走下一个拦截器或请求方法。当我们直接返回return”success”,这类字符串时,拦截器会匹配所请求action的result结果,并直接返回。…

    2022年10月7日
    2
  • Python学习-01-初始Python

    Python学习-01-初始PythonPython基础知识总结一、前期1.1解释型语言和编译型语言编译型语言在程序执行之前,有一个单独的编译过程,将程序翻译成机器语言,以后执行这个程序的时候,就不用再进行翻译了。解释型语言,是在运

    2022年7月6日
    24
  • 第一篇提问艺术「建议收藏」

    第一篇提问艺术「建议收藏」虽然这是老话常谈,但是最近的回答问题的过程中,有点感触。你问题问的好,问的准确,回答你的人才有积极性给你答复,这样你又可以更快的解决你的问题。好多人不知道如何提问,所以我打算把这篇老文章转过来置顶。花点时间看看。如果没时间,至少看看下面的图吧:====================================================================

    2022年6月23日
    26
  • 【杂谈】您是以什么姿态来参与讨论、回帖的?

    【杂谈】您是以什么姿态来参与讨论、回帖的?

    2021年8月1日
    52
  • 四大主流CA机构_CA机构的作用

    四大主流CA机构_CA机构的作用四大主流CA机构–wosign是唯一支持免费证书的找到免费SSL证书了,刚刚看到他们网站有快捷申请免费SSL证书,很方便,10分钟颁发,试了一下,申请了2个域名,一个颁发很快,另一个稍微有点慢,问他们客服,客户说另外一个域名,涉及到敏感信息,需要两签,所以审核会慢一下,好吧,只要证书好用,等一会也无所谓啦!另外,我是看到微博上面的这个四大主流CA机构证书对比表,才去的申请的哦!…

    2025年6月17日
    2

发表回复

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

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