Linux之shell执行流控制

本文详细介绍了Shell脚本中的循环控制结构,包括for、while、until循环的使用方法及示例,if条件判断语句,case选择结构,以及break、continue和exit的用法。通过实际脚本练习加深理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 ##脚本退出
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值