走进shell中的循环

1、shell中的for语句

格式:

        for 定义变量

        do

                active()

        done

说明:for语句中定义变量的格式有多种:序列(seq 1 10);字符串(1 2 3);倒序(10...1);运算((i=0;i<3;i++));数组。

举例说明:

图 1 示例代码
图 2 示例结果

2、shell中的while语句

格式:

        while  设定条件

         do

                active()

        done

说明:这里是的条件是一个判断条件,true表示永远成立,或者设定test的条件进行对比;while条件正确才执行;

举例说明:

图 3 代码演示
图 4 结果演示

 

3、shell中的until语句

格式:

       until false

       do

              active()

       done

说明:这里until执行的内容为:错误的(即条件为假)

举例说明:因为这个和while正好相反,这里不再进行仔细演示。

4、shell中的if语句

格式:

       if  条件

       then

              active()

       elif  条件

       then

              active()

       fi

说明:条件为真则相应执行下面的语句,依次执行,当遇到条件为正则执行完毕,或者执行到fi;

举例说明:

图 5 检测文件类型
图 6 测试结果

5、shell中的case语句

格式:

       case $1 in

                     world1)

                     active()

                     ;;

                     world2)

                     active()

                     ;;

       esac

说明:其中world1 world2为匹配词;case原理根据匹配的词进行任务的执行,时并行关系;

举例说明:

图 5 查看系统状态
图 6 运行结果

6、shell中的expect语句

格式:

       文件expect脚本内容格式:

              #!/usr/bin/expect                                ###因为expect为单独的环境,所以设置运行环境

              set timeout 1                                     ###设置回答问题的时间,超过该时间则继续下一项

       set NAME [ lindex $argv 0 ]                     ###设置脚本运行时,后面所跟第一串字符内容,并命名为NAME

       set NAME [ lindex $argv 0 ]

                     .....

       spawn /***/****                                         ###将“问题脚本”(运行中需要回答问题),连接到“答案脚本”(回答问题的答案)

       expect{                                                    ###进行问题匹配,回答问题

                     "name"  { send "NAME\r";exp_continue}        ####“name”为问题匹配的关键词(唯一);send后面为所跟匹配答案;exp_continue 表示后面依然后问题答案,继续执行。

                            ....

                     "name"  { send "NAME\r";}

       }

       expect eof                       ###结束问题匹配

说明:

       1. 含有回答问题的脚本需要执行权限,这样才可被使用;

       2. 改脚本问题的执行命令为:expect,若系统中不存在,还需安装该脚本运行环境。

举例说明:

图 7 问题脚本
图 8 答案脚本
图 9 自动登录192.168.1.200这台主机

7、shell中的三种中断

contiue:   终止当此次循环并继续后面循环;

break :   终止当前所在语句所有动作进行语句外的其他动作

exit:       退出脚本

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值