Linux之shell执行流控制

4 篇文章 0 订阅

1. for

for 定义变量 

do 使用变量,执行动作 

done 结束标志

格式1:

 

for I in `seq 2 2 10` 
do
       echo $I 
done

格式2:
 

for I in 1 2 3 
do
       echo $I 
done

格式3:
 

for I in {10..1} 
do
       echo $I 
done

格式4:
 

for ((I=0;I<10;I++)) 
do
       echo $I 
done

脚本练习:

check_host.sh 用此脚本检测10台与您当前主机直连主机是否网络通常

如果网络通常请显示主机的ip列表

 

2. while

while ture #条件为真 

do #条件成立所作循环动作

done

 

3. until

until false ##条件为假 

do #条件不成立所作循环动作

done 

 

4. if

if 条件1
then 
elif 条件2
then 
... 
else 其他
fi

脚本练习:

check_file.sh

please input filename: file

file is not exist

file is file | file is direcory 此脚本会一直询问直到用户输入exit为止

5. case

 case $1 in
         A|a)
                 echo "AAAA"
                 ;;
         B|b)
                 echo "BBBB"
                 ;;
         *)
                 echo "unknown"
                 ;;
 esac 

脚本练习 system_watch.sh disk memory upload (每秒显示)

disk 监控磁盘使用情况

memory 监控内存使用情况

upload 监控启动负载

6. expect

问题脚本

#!/bin/bash

read -p "what's your name:" NAME

read -p "How old are you: " AGE

read -p "Which objective: " OBJ

read -p "Are you ok? " OK

echo $NAME is $AGE\'s old study $OBJ feel $OK


 
 
应答脚本

#!/usr/bin/expect

set timeout 1

set NAME [ lindex $argv 0 ]   ##应答脚本后第一个参数

set AGE  [ lindex $argv 1 ]

set OBJ [ lindex $argv 2 ]

set FEEL [ lindex $argv 3 ]

spawn /mnt/ask.sh                ##监控的问题脚本

expect {

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

"old" { send "$AGE\r";exp_continue }

"objective" { send "$OBJ\r";exp_continue }

"ok" { send "$FEEL\r" }

}

expect eof

脚本练习

auto_ssh.sh ip password 

可以自动连接目标主机当目标主机网络不通时报错

7. break,continue,exit

  • contiue ##终止当此次循环提前进入下个循环
  • break ##终止当前所在语句所有动作进行语句外的其他动作
  • exit ##脚本退出
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值