目录

  • 一、for循环语句
    • 示例:
      • 示例1
      • 示例2
    • 示例3
  • 二、跳出循环
    • 举例
  • 转义符
  • 三、while 语句的结构
    • 示例:
  • 四、until语句的结构
    • 1、基本格式
  • 五、seq命令

一、for循环语句

读取不同的变量值,用来逐个执行同一组命令


#!/bin/bash
for(( i=0;i<=5;i++ ))i=0   定义for循环i变量初始值为0
i<=5  循环条件i小于等于5
i++   每循环一次i自加1
do
echo "$i"                 #for循环每循环一次执行一次输出$i
done                      #for语句结束标志

示例:

示例1


在用户名文件里设置用户


验证

示例2

使用ping命令来查看对应的主机开启状态


示例3

使用脚本来执行1-100累加值为多少

用网段来查找ip地址的存活

#!/bin/bash
read -p "请输入一个ip网段:" ip
for i in {1..254}
do
{ping -c 3 -W 2 ${ip}${i}  &> /dev/null
if [ $? -eq 0 ]
then
echo "${ip}${i} 存活"
echo ${ip}${i} >> /opt/hosts.txt
else
echo "${ip}${i} 不存活"
fi
}&      输入&来提高效率,只能在小型的文件使用
done

利用for循环将多个文本文件内容合并为一个文件

for i in /opt/*.sh
docat "$i" >> abc.txt       >>重定向追加
done

打印出某个目录下的所有文件

for i in /opt/*      这边opt可以换成别的目录名
do
test -f $i               teat -f 表示一般文件
if [ $? -eq 0 ]
then
echo $i
fi
done

制作一个shell脚本的计算器
都式要用双中括号来括起来

#!/bin/bash
while true
do
read -p "输入第一个数:" num1
read -p "输入运算符号: 加(+);减(-);乘(*);除(/) " fs
read -p "输入第二个数:" num2
if [[ "$fs" == "+" ]]
then
echo "结果为: $(($num1+$num2))"
elif  [[ "$fs" == "-" ]]
then
echo "结果为:$(($num1-$num2))"
elif  [[ "$fs" == "*" ]]
then
echo "结果为:$(($num1*$num2))"
elif  [[ "$fs" == "/" ]]
then
echo "结果为:$(($num1/$num2))"
else
echo "输入有误"
fi
done

编写能够自动生成一个6位随机密码的脚本

#!/bin/bash
str=1234567890
for i in {1..6}       字符串的长度
do
a=$[RANDOM % ${#str}]
tmp=${str:a:1}     对字符串进行分片
passwd=$passwd$tmp  正排     passwd=$tmp$passwd 倒排
done
echo "生成6位数的随机密码为:$passwd " 

使用循环语句将一个 0到255 之间的十进制数转换成8位数二进制数

#!/bin/bash
read -p "请输入一个0 ~ 255的整数" num
for i in {1..8}
do
a=$[ num % 2 ]$a   得到一个余数
let num=$[num / 2]
done
echo $a

进行减法正排,10进制转换2进制

#!/bin/bash
read -p "请输入一个0 ~ 255的整数" num
for i in {128.64.32.16.8.4.2.1}
do
NUM=$[num - i]
if [ $NUM -lt 0 ]
then
echo -n 0
else
echo -n 1
let num=$[num - i]
fi
done

实验99乘法表

实验99乘法表来计算数值

二、跳出循环

continue跳出循环:
表示满足continue条件时跳出循环,但是不影响后续循环执行它的作用是在循环内部跳过本次循环并继续下一次循环

举例


使用break 来控制循环流程

转义符

只有加上-e才能实验转义符

三、while 语句的结构

重复测试某个条件,只要条件成立则反复执行

while [判断条件]
do
执行动作   while循环执行动作
done      while循环结束标志while true  死循环

示例:

批量建立用户

#!/bin/bash
i=0
while [ ${i} -le 10 ]
do
useradd zhang${i}
echo “123123" | passwd --stdin zhang${i} &> /dev/null
if [ $? -eq 0 ]
then
echo "成功"
else
echo "失败"
fi
let i++
done

批量删除用户

#!/bin/bash
i=1
while [ $i -le 10 ]
do
userdel -r zhang${i}
let i++
done

猜价格游戏:
运用了随机数的配置

#!/bin/bash
a=$[RANDOM%100+1]    先创建一个随机数
t=0                 定义一个次数
while true      死循环
do
let t++
read -p "输入一个数字猜价格:" i
if [ $a -eq $i ]
then
echo "你真棒啊"
echo "猜了${t}次"
break
elif [ $i -gt $a ]
then
echo "猜大了"
else
echo "猜小了"
fi
done

购物
逛淘宝选购商品,
每家商店有五种商品选购 (衣服500元,裤子400元,鞋子350元,帽子150元,袜子50元)每次选购完或不买都会提示用户是否继续逛下一家商店,如果不再继续逛的话进行购物车结算总额。

#!/bin/bash
sum=0
while true
do
read -p "输入想要购买的商品(衣服500,裤子400,鞋子350,帽子150,袜子50)" gw
case $gw in
衣服)
let sum+=500
;;
裤子)
let sum+=400
;;
鞋子)
let sum+=350
;;
帽子)
let sum+=150
;;
袜子)
let sum+=50
;;
*)
echo "没有找到对应的商品,重新输入"
esacread -p "是否继续购买商品" b
if [[ "$b" == "不买了" ]]
then
echo $sum
break
fi
done

四、until语句的结构

1、基本格式

unti1循环通常用于当判断条件不成立时才进行循环,一旦判断条件成立,就终止循环.比如等待某个进程退出、等待某个文件被创建等等

格式:
until [条件测试操作]
do判断式/命令序列
done

只有条件不成立的时候才能执行until

五、seq命令

一个按顺序进行生成一个序列

seq 10   表示到10结束
正序

seq 10 -1 1
倒序

倒序取偶数
seq 10 -2 1

正序取奇数
seq 1 2 10

正序取偶数
seq 2 2 10

a=$(seq 1 10)  反向生成
echo -n $a

【Shell编程之循环语句与函数】相关推荐

  1. shell编程之循环语句

    shell编程之循环语句 文章目录 shell编程之循环语句 一.for循环语句 1. for循环语法结构 ㈠ 列表循环 2. 应用案例 二.while循环语句 1. while循环语法结构 2. 应 ...

  2. Shell编程之循环语句(详细讲解以及脚本案例)

    Shell编程之循环语句(详细讲解以及脚本案例) 文章目录 一.for语句的结构 (一).for语句应用实例 1.示例1--批量添加用户 2.示例2--使用根据IP地址检查主机状态 3.示例3--fo ...

  3. Shell编程之循环语句与常用转义字符及一些小实验

    for循环语句 循环控制语句 seq命令 实例: while循环 实例: until循环 实例: 常用转义字符 shell脚本多重循环小实验 一.99乘法表 二.矩形 三.直角三角形 四.等腰直角三角 ...

  4. Shell编程之循环语句(for、while、until)

    文章目录 1.for语句的结构 示例1 示例2 示例3 示例4 2.while语句的结构 示例1 3.until语句的结构 示例1 1.for语句的结构 总结: 条件需要你预先已经知道会出现哪些情况, ...

  5. shell脚本之until语句和函数

    文章目录 shell脚本之until语句.函数和数组 一.until语句 1.1until语句结构 1.2until语句的应用 1.2.1通过循环累加的方式计算1-100的和 1.2.2 为制定用户发 ...

  6. (四)shell编程之循环结构

    shell编程之循环结构 #本机课程目标 掌握for循环语句的基本语法结构 掌握while和until循环语句的基本语法结构 一.for循环语句 关键词:爱的魔力转圈圈

  7. shell编程之条件语句(文件测试,test命令,字符串和逻辑测试,if单支语句,if双支语句,if多支语句,case命令,用if写跑步小实验)

    文章目录 shell编程之条件语句 条件测试 test命令 整数值测试 free -m 提供了更简洁的查看系统内存使用情况: 字符串和逻辑测试 字符串 逻辑测试 一元运算符,二元运算符和三元运算符 i ...

  8. Linux Shell脚本多循环语句练习题

    Linux Shell脚本多循环语句练习题 99乘法表 矩形 正直角三角形 反直角三角形 倒直角三角形 等腰三角形 倒等腰三角形 菱形 平行四边形 直角梯形 等腰梯形 99乘法表 #!/bin/bas ...

  9. Shell编程之条件语句(if语句,case分支语句)

    Shell编程之条件语句 一.条件测试操作 1.test命令 2.文件测试 3.整数值比较 4.字符串比较 5.逻辑测试 二.if语句 单分支结构 双分支结构 多分支结构 三.case分支语句 一.条 ...

最新文章

  1. 跟我学Spring Cloud(Finchley版)-16-Zuul
  2. SQL-sp_executesql
  3. 从u盘设备启动arc-livecd
  4. 支付宝红包强攻微信社交,臆想出来的豪门恩怨
  5. (BAE)jetty8+struts2导致 welcome-file-list 失效
  6. spring boot: 查看ApplicationContext中有哪些Bean
  7. ArrayBlockingQueue跟LinkedBlockingQueue的区别
  8. Exynos4412 裸机开发—— 流水灯
  9. [WEB]超牛的前端页面模板收集
  10. 解决启动eureka报错Unable to start web ... nested exception is org.springframework.boot.web.server.WebS
  11. Word 2007 删除页眉横线
  12. 关联规则:一款在策略挖掘中必不可少的算法
  13. python多线程爬取美图录网站图集按模特姓名存储到本地(一)
  14. 射影几何----共线四点保交比的三种射影变换类型的几何表示
  15. 插入排序一块说说-很合适~~~二分查找和折半
  16. 黑马程序员_java高级篇网络编程TCP实战Day8(上)
  17. 中外合作计算机专业的大学排名,2017中外合作办学大学排名
  18. 《计算还款年限-月还款额》
  19. String字符串截取几种方法
  20. 渗透测试工具实战技巧合集

热门文章

  1. clinux 防火墙增加白名单_linux防火墙白名单设置方法
  2. 聊聊常见的加密算法、原理、优缺点、用途
  3. not a valid identifier解决
  4. 记事本文件保存为JAVA文件
  5. 正则表达式中的常用模式字符串及两种匹配模式
  6. 科普|深入解读EDI的优势
  7. MATLAB-使用系统识别应用程序识别非线性黑盒模型
  8. [转载]怎么写出一本程序员风格的修真小说?
  9. “C语言的核心是指针,灵魂是算法“那么指针为什么被誉为C语言灵魂呢?
  10. 支付宝证书签名 PHP SDK