一、if语句、while、for循环各种小例题

1.用户验证

  1. [root@bogon ~]# cat buer.sh
  2. #!/bin/bash
  3.  
  4. #user='buer'
  5. #password='1234.com'
  6.  
  7. read -p 'please your name:' user
  8. read -p 'password:' passwd
  9.  
  10. if [ $user = 'buer' -a $passwd = '1234.com' ];then
  11. echo 'login successful'
  12. fi

2.猜年龄

  1. #!/bin/bash
  2.  
  3. age=57
  4. read -p 'num:' num
  5.  
  6. if [ $num -eq $age ];then
  7. echo 'you get it'
  8. elif [ $num -gt $age ];then
  9. echo 'too big'
  10. elif [ $num -lt $age ];then
  11. echo 'too samll'
  12. fi

3.查询成绩

  1. [root@bogon ~]# cat score.sh
  2. #!/bin/bash
  3.  
  4. read -p 'please your score:' score
  5.  
  6. if [ $score -ge 90 ];then
  7. echo 'very good!'
  8. elif [ $score -ge 70 -a $score -lt 90 ];then
  9. echo 'good!'
  10. elif [ $score -ge 60 -a $score -lt 70 ];then
  11. echo 'just like'
  12. else
  13. echo 'poor'
  14. fi

4.for循环打印1235

  1. [root@bogon ~]# cat for.sh
  2. #!/bin/bash
  3.  
  4. for i in {1..5}
  5. do
  6. if ((i == 4));then
  7. continue
  8. #break
  9. fi
  10. echo '=======' $i
  11. done

脚本4的执行结果:

  1. [root@bogon ~]# ./for.sh
  2. ======= 1
  3. ======= 2
  4. ======= 3
  5. ======= 5

5.改进版的猜年龄

  1. [root@bogon ~]# cat oldboy.sh
  2.  
  3. oldboy=57
  4. while :
  5. do
  6. read -p 'input your age:' age
  7. if [ -z $age ];then
  8. continue
  9. fi
  10. if [ $age -eq $oldboy ];then
  11. echo "bingo"
  12. break
  13. elif [ $age -lt $oldboy ];then
  14. echo "little"
  15. elif [ $age -gt $oldboy ];then
  16. echo "big"
  17. else
  18. echo "bye"
  19. fi
  20. done

脚本5结果:

  1. [root@bogon ~]# ./oldboy.sh
  2. input your age:45
  3. too samll
  4. input your age:65
  5. too big
  6. input your age:57
  7. you get it
  8. [root@bogon ~]#

6.查看文件类型

  1. [root@bogon ~]# cat aa.sh
  2. #!/bin/bash
  3.  
  4. while :
  5. do
  6. read -p 'input your file:' file
  7. if [ -z $file ];then
  8. continue
  9. elif [ $file = 'quit' ];then
  10. break
  11. fi
  12. if [ -b $file ];then
  13. echo "$file is block file"
  14. elif [ -d $file ];then
  15. echo "$file is directory file"
  16. elif [ -f $file ];then
  17. echo "$file is regular file"
  18. else
  19. echo "$file unkown"
  20. fi
  21. done

脚本6结果:

  1. [root@bogon ~]# sh aa.sh
  2. input your file:/etc
  3. /etc is directory file
  4. input your file:/pm
  5. /pm unkown
  6. input your file:quit

7.打印乘法口诀表

  1. [root@bogon ~]# cat cheng.sh
  2. #!/bin/bash
  3.  
  4. for ((i=1;i<=9;i++))
  5. do
  6. for ((j=1;j<=i;j++))
  7. do
  8. echo -n "$i*$j=$[$i*$j]"
  9. done
  10. echo
  11. done

脚本7结果:

  1. [root@bogon ~]# ./cheng.sh
  2. 1*1=1
  3. 2*1=22*2=4
  4. 3*1=33*2=63*3=9
  5. 4*1=44*2=84*3=124*4=16
  6. 5*1=55*2=105*3=155*4=205*5=25
  7. 6*1=66*2=126*3=186*4=246*5=306*6=36
  8. 7*1=77*2=147*3=217*4=287*5=357*6=427*7=49
  9. 8*1=88*2=168*3=248*4=328*5=408*6=488*7=568*8=64
  10. 9*1=99*2=189*3=279*4=369*5=459*6=549*7=639*8=729*9=81

8.批量创建用户

  1. [root@bogon ~]# cat add.sh
  2. #!/bin/bash
  3.  
  4. for i in {1..5};
  5. do
  6. useradd user$i && echo "user$i create successful"
  7. done

脚本8执行结果:

  1. [root@bogon ~]# sh add.sh
  2. user1 create successful
  3. user2 create successful
  4. user3 create successful
  5. user4 create successful
  6. user5 create successful

9.批量删除用户

  1. [root@bogon ~]# cat del.sh
  2. #!/bin/bash
  3.  
  4. for i in {1..5};
  5. do
  6. userdel -r user$i && echo "user$i delete successful"
  7. done

脚本9执行结果:

  1. [root@bogon ~]# sh del.sh
  2. user1 delete successful
  3. user2 delete successful
  4. user3 delete successful
  5. user4 delete successful
  6. user5 delete successful

10.循环叠加打印数字,并睡眠1s

  1. [root@bogon ~]# cat conut.sh
  2. #!/bin/bash
  3.  
  4. count=1
  5. while ((count < 10))
  6. do
  7. echo '==========>' $count
  8. sleep 1
  9. ((count+=1))
  10. done

执行结果:

  1. [root@bogon ~]# sh conut.sh
  2. ==========> 1
  3. ==========> 2
  4. ==========> 3
  5. ==========> 4
  6. ==========> 5
  7. ==========> 6
  8. ==========> 7
  9. ==========> 8
  10. ==========> 9

11.批量ping  ip

  1. [root@bogon ~]# cat ping.sh
  2. #!/bin/bash
  3.  
  4. for i in {1..100};
  5. do
  6. ping -c1 192.168.16.$i &> /dev/null
  7. if [ $? -eq 0 ];then
  8. echo "192.168.16.$i OK"
  9. echo "192.168.16.$i" >> /tmp/ip.txt
  10. fi
  11. done

12.模仿登录用户小工具

  1. [root@bogon ~]# cat login.sh
  2. #!/bin/bash
  3.  
  4. user='buer'
  5. passwd='1234.com'
  6. while $tag
  7. do
  8. read -p 'input your name:' name
  9. read -p 'input your passwd:' pas
  10. if [[ $name = $user ]] && [[ $pas = $passwd ]];then
  11. echo 'login successful'
  12. while $tag
  13. do
  14. read -p '>>:' cmd
  15. if [[ $cmd = 'quit' ]];then
  16. tag=false
  17. else
  18. $cmd
  19. fi
  20. done
  21. fi
  22. done

执行结果:

  1. [root@bogon ~]# sh login.sh
  2. input your name:buer
  3. input your passwd:1234.com
  4. login successful
  5. >>:ls
  6. aa.sh a.txt del.sh oldboy.sh 模板 下载
  7. add.sh buer.sh for.sh ping.sh 视频 音乐
  8. age.sh cheng.sh initial-setup-ks.cfg score.sh 图片 桌面
  9. anaconda-ks.cfg conut.sh login.sh 公共 文档
  10. >>:pwd
  11. /root
  12. >>:quit
  13. [root@bogon ~]#

shell之流程控制的更多相关文章

  1. shell编程--流程控制for,do-while,if-then,break,continue,case等

    2.5 流程控制 2.5.1 if语法 1.语法格式 if condition then     statements [elif condition     then statements. ..] ...

  2. Shell工具| 流程控制

    1. 流程控制 if 判断 ()[ 条件判断式 ],中括号和条件判断式之间必须有空格 ()if后要有空格 [kris@hadoop datas]$ vim if.sh #!/bin/bash -eq ...

  3. shell编程流程控制

    前言: 在linux shell中,通常我们将一些命令写在一个文件中就算是一个shell脚本了,但是如果需要执行更为复杂的逻辑判断,我们就需要使用流程控制语句来支持了. 所谓流程控制既是通过使用流程控 ...

  4. 10、shell编程+流程控制+分支嵌套

    SHELL 编程     shell 是一个命令解释器,侦听用户指令.启动这些指令.将结果返回给用户(交互式的shell)     shell 也是一种简单的程序设计语言.利用它可以编写一些系统脚本. ...

  5. linux shell 之流程控制 if if else while

    (1)流程控制不可以为空: (2)if [ $(ps -ef | grep -c "ssh") -gt 1 ]; then echo "true"; fi 条件 ...

  6. shell 10流程控制

    if 判断 if #shell #!/bin/sh a=5 if [[ $a > 3 ]];then echo "$a>3" fi #写成一行 if [[ $a < ...

  7. Linux学习 -- Shell编程 -- 流程控制

    if语句 单分支 if [ 条件判断式 ]; then 程序 fi 或者 if [ 条件判断式 ] then 程序 fi 例子: 双分支 if [ 条件判断式 ] then 程序 else 程序 fi ...

  8. linux shell编程流程控制

    条件选择 单分支条件 多分支条件 选择执行if语句 单分支 if 判断条件;then 条件为真的分支代码 fi 双分支 if 判断条件; then 条件为真的分支代码 else 条件为假的分支代码 f ...

  9. Shell命令和流程控制

    Shell命令和流程控制 在shell脚本中可以使用三类命令: 1)Unix 命令: 虽然在shell脚本中可以使用任意的unix命令,但是还是由一些相对更常用的命令.这些命令通常是用来进行文件和文字 ...

随机推荐

  1. 【Consul】Consul架构-Gossip协议

    Consul使用gossip协议管理成员关系.广播消息到整个集群.详情可参考Serf library,Serf使用到的gossip协议可以参阅"SWIM: Scalable Weakly-c ...

  2. 【C#】 反射

    [C#] 反射 目录 : http://msdn.microsoft.com/zh-cn/library/System.Reflection(v=vs.110).aspx System.Reflect ...

  3. 30分钟 带你浅入requirejs源码

    因为最近项目想现实一个单页功能,用的是react ,然后看了一下react route,挖槽 gzip后16k? 然后我简单写了一个纯单页(不支持多页的单页,所有入口都经过rewrite跑到index ...

  4. jmeter设置全局变量的方法

    需求: 同一个线程组内有两个http请求A.B,A请求的后置处理器中存储的有值,B请求中添加用户变量Va先要引用该值,然后B请求的前置处理器再引用用户变量va. 第一种方式: 1.A请求后置处理添加如 ...

  5. Qt 解析网络数据出现ssl错误

    最近写了点小东西,哈哈, 网络部分是同学帮我搞的 在编译的时候,出现了一下错误 qt.network.ssl: QSslSocket: cannot call unresolved function ...

  6. 【转】ASP.NET Core 快速入门(环境篇)

    原文链接:http://www.cnblogs.com/zhaopei/p/netcore.html [申明]:本人.NET Core小白.Linux小白.MySql小白.nginx小白.而今天要说是 ...

  7. 可以完成99%的静态页面的HTML标签

    HTML:一套浏览器认知的规则HTML分为两个部分,头和身体.一个完整的网页相当于一个裸体的人,我们利用HTML给它穿上衣服,使它更好看.下面我将为大家介绍一下HTML一些基本的标签,而这些基本的标签 ...

  8. Kindle 3(非常旧的版本) 隔一段时间自动重启问题

    买了本新书后,kindle 3 自己没事就在那边重启,几分钟一次 查到解决方案1: https://answers.yahoo.com/question/index?qid=2014040815565 ...

  9. Android之 GPS学习笔记

    ========================================GPS:全球定位系统 GPS由三部分组成:GPS卫星组成的空间部分,若干地面组成的控制站,用户手中的接收机.Androi ...

  10. input设置为readonly后js设置intput的值后台仍然可以接收到

    今天发现一个奇怪现象,一个input属性readonly的值被设置为readonly,然后有前台js给input设置了新值. 虽然前台看不到效果,但是提交到后台后,仍然可以接收到新值,感觉很奇怪. 我 ...