shell脚本编程-循环(for循环

shell脚本编程-循环(for循环)

知识回顾:
创建一个shell脚本规则
执行脚本
变量
测试
运算
if :单分支、双分支、多分支
实例:
剪刀石头布
检测主机是否存活
判断成绩

循环: for while case(分支编写的脚本) 函数

学习shell注意:
shell是一门只针对于linux的脚本语言
知识放空
重点是学习他的语法结构
例: if 命令或者条件判断
then
执行语句
fi

for循环:
语法结构:

  1. for 变量名 in 列表值
    do
    执行命令
    done
  2. for 变量名 in 命令或者$(命令)
    do
    执行命令
    done
  3. for 变量名 in {1…5}
    do
    执行命令
    done
  4. for 变量名 in seq 5
    do
    执行命令
    done

实例:批量检测主机的存活状态:
知识点:
ping 命令:
-c 可以设置oing的次数
-i 设置ping之间的时间间隔(单位秒)
-w ping不通的超时时间

 网段:59.233.65.0/24    255个主机
       

#vim  checkhosts.sh
 #! /bin/bash
 for  i in {1..254}
 do  
     ping  -c  3  -i  0.2  -w  1 49.233.65.$i> /dev/null
     if  [ $?  -ep  0 ] ;then
          echo "host 49.233.65.$i  is up"
     else 
          echo "host $host  is down"
     fi
 done

运算符:
expr 整数运算
bc 支持小数
$ ((算数表达式))
a=10
b=2
c=$ (( a + a+ a+b ))
let :
运算不能空格
如果非要有空格,用双引号引起来

    #let  i=i+5
    #echo  $i
    5

   i++  --> i=i+1 --> i+=1
   i--  --> i=i-1 --> i-=1
   
   ++i 
   运算顺序不一样

随机抽查姓名的脚本:
执行脚本之后,输出随机的一个姓名,姓名在一个文档中存储。
name.txt

1.数组 a=(cat /root/name.txt)
2.随机
b=cat /root/name.txt | wc -l
//统计多少行
c= [ R A N D O M [RANDOM% [RANDOMb] 0-69
${a[]}

#!/bin/bash

jw=( ‘马世琛’‘
孙明磊’‘
王浩楠 ‘‘
赵新宇’‘
祁雪宁’

‘杜炳辉’‘
陈楠
‘‘ 张亚锋’‘
王旭阳’‘
张春起’‘

旭阳’‘
刘辰龙’‘
张世杰’‘
李豪杰’‘
赵佳豪’

‘王博玉’‘
李天星’‘
李世东’‘
刘喆’ ‘
潘锴
‘‘张晓航’

‘高星雨’‘
韩程远’‘
刘百会’‘
周孟浩’‘
杨占松’

‘黄建平’‘
韩晓东’‘
王宏箫
‘‘ 常梦丽’‘
贺艳梅’

‘周雪龙’‘
黄家旺’‘
王承志’‘
曹寅
赵’‘ 炎
张正’

‘张露凡’‘
康家豪’‘
赵文超 ‘‘
刘硕承’‘
苏桐’

‘冯佳伟 ‘‘
王泽华’‘
罗淋’‘
齐鑫
‘‘韩蓄’‘
蒋帅飞’
‘张凯’‘
贾一帅’‘
杨旭华’‘
郑子鹏’‘
冯清叶’

‘申宇宽’‘
王有森’‘
翟成龙 ‘‘
智乾’‘
欧洪波’

‘王紫翔’‘
寇长福’‘
王宇鹏’‘
赵泽朋’‘
刘晓瑞’

‘冯晓如’‘
李志红’‘
郭凤翔’‘
张泽康’‘
董乾毅’

汪栋’‘
顿多姿
’ ) #定义数组
a=$(( $RANDOM % 69 )) #生成 0~68 的 随机数 $RANDOM 为随机变量
echo ${jw[a]} #输出数组 数组下标从0开始

1.数组:
定义:
a=(hah nihao hello)
a[0]=hi
a=(hi nihao hello)

b=()
for i in cat/root/name.txt
do
b[ j ] = j]= j]=i
let j++
done

1.用shell打印九九乘法表
for循环
echo “”

for i in seq 9 //定义外循环(决定行数)
do
for j in seq $i //定义内循环(决定列数)
do
echo -n "$j * $i = $[i*j] "
done
echo “”
done

2.shell输出20斐波那契数列
3.shell写出一个判断闰年交互是脚本,可以判断三次

#! /bin/bash
list=(0 1)
for i in seq 2 11
do
list[$i]= expr ${list[-1]} + ${list[-2]
done
echo ${list[@]}

#! /bin/bash
for i in {1…3}
do
read -P“请输入年份1”y
if [ [ [ [y%4] -eq 0 ]
then
echo " y 是 闰 年 " e l s e e c h o " y是闰年" else echo " y"elseecho"y不是闰年”
fi
done

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尹汇川

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值