1,每隔3秒,打印一次系统负载

  1. #!/bin/bash
  2.  
  3. while true
  4. do
  5. uptime
  6. sleep
  7. done

2,把监控结果保存到文件,在后台执行,然后用tail -f监控文件变化

  1. ghostwu@dev:~/linux/shell/flow_control$ sh while.sh &
  2. []
  1. #!/bin/bash
  2.  
  3. while true
  4. do
  5. uptime >> log.txt
  6. sleep
  7. done
  1. ghostwu@dev:~/linux/shell/flow_control$ tail -f log.txt
  2. :: up min, user, load average: 0.33, 0.35, 0.32
  3. :: up min, user, load average: 0.33, 0.35, 0.32
  4. :: up min, user, load average: 0.31, 0.34,
  5. ...

3,进程调度相关命令

fg: 把当前脚本或者任务放到前台执行。如果指定某个任务:fg 任务编号。 任务编号通过jobs查询

bg: 把任务放到后台执行

jobs:查看当前执行的脚本或者任务

ctrl+z:暂停执行当前的脚本

sh while1.sh & : 加上&,表示后台执行脚本

  1. ghostwu@dev:~/linux/shell/flow_control$ fg
  2. sh while.sh
  3. ^Z
  4. []+ Stopped sh while.sh
  5. ghostwu@dev:~/linux/shell/flow_control$ jobs
  6. []+ Stopped sh while.sh
  7. ghostwu@dev:~/linux/shell/flow_control$ bg
  8. []+ sh while.sh &
  9. ghostwu@dev:~/linux/shell/flow_control$ jobs
  10. []+ Running sh while.sh &
  11. ghostwu@dev:~/linux/shell/flow_control$ sh while.sh &
  12. []
  13. ghostwu@dev:~/linux/shell/flow_control$ jobs
  14. []- Running sh while.sh &
  15. []+ Running sh while.sh &
  16. ghostwu@dev:~/linux/shell/flow_control$ fg
  17. sh while.sh
  18. ^Z
  19. []+ Stopped sh while.sh
  20. ghostwu@dev:~/linux/shell/flow_control$ bg
  21. []+ sh while.sh &
  22. ghostwu@dev:~/linux/shell/flow_control$ jobs
  23. []- Running sh while.sh &
  24. []+ Running sh while.sh &

4,用while循环打印0, 1, 2, 3, 4

  1. #!/bin/bash
  2. i=
  3. while [ $i -lt ]
  4. do
  5. echo $i
  6. (( i++ ))
  7. done

两个中括号也可以

  1. #!/bin/bash
  2. i=
  3. while [[ $i -lt ]]
  4. do
  5. echo $i
  6. (( i++ ))
  7. done

还可以用计算表达式

  1. #!/bin/bash
  2. i=
  3. while (( i < ))
  4. do
  5. echo $i
  6. (( i++ ))
  7. done

5,计算1....100的和

  1. ghostwu@dev:~/linux/shell/flow_control$ sh sum.sh
  2. ++..+=
  3. ghostwu@dev:~/linux/shell/flow_control$ cat sum.sh
  4. #!/bin/bash
  5.  
  6. i=
  7. sum=
  8. while (( i <= ))
  9. do
  10. (( sum = sum + i ))
  11. (( i++ ))
  12. done
  13. echo "1+2+3..+100="${sum}

6,猜数字

  1. #!/usr/bin/bash
  2.  
  3. sum=$((RANDOM%))
  4.  
  5. echo "需要你猜的数是:"$sum
  6.  
  7. sleep
  8.  
  9. echo "请输入1-50之间的数,开始猜吧!"
  10.  
  11. count=
  12.  
  13. function type_num(){
  14. read -p "请输入一个数吧:" n
  15. expr $n + &>/dev/null
  16. if [ $? -ne ]; then
  17. echo "请输入一个数字"
  18. type_num
  19. fi
  20. }
  21.  
  22. function guess(){
  23. (( count++ ))
  24. if [ $n -eq $sum ]; then
  25. echo "你猜中了,你的次数是:"${count}
  26. if [ $count -lt ]; then
  27. echo "你太厉害了"
  28. elif [ $count -ge -a $count -lt ]; then
  29. echo "还是不错的,加油"
  30. else
  31. echo "你有点水啊"
  32. fi
  33. exit
  34. elif [ $n -gt $sum ]; then
  35. echo "猜大了"
  36. type_num
  37. else
  38. echo "猜小了"
  39. type_num
  40. fi
  41. }
  42.  
  43. function main(){
  44. type_num
  45. while true
  46. do
  47. guess
  48. done
  49. }
  50.  
  51. main

Linux Shell脚本编程while语句案例的更多相关文章

  1. Linux Shell脚本编程while语句

    Linux Shell脚本编程while语句案例 1,每隔3秒,打印一次系统负载 #!/bin/bash while truedo    uptime    sleep 3done 2,把监控结果保存 ...

  2. Linux shell脚本编程if语句的使用方法(条件判断)

    if 语句格式if  条件then Commandelse Commandfi        别忘了这个结尾If语句忘了结尾fitest.sh: line 14: syntax error: unex ...

  3. Linux shell脚本编程(三)

    Linux shell脚本编程 流程控制: 循环语句:for,while,until while循环: while CONDITION; do 循环体 done 进入条件:当CONDITION为“真” ...

  4. Linux shell脚本编程(二)

    Linux shell脚本编程(二) 练习:求100以内所有偶数之和; 使用至少三种方法实现; 示例1: #!/bin/bash # declare -i sum=0 #声明一个变量求和,初始值为0 ...

  5. Linux shell脚本编程(一)

    Linux shell脚本编程: 守护进程,服务进程:启动?开机时自动启动: 交互式进程:shell应用程序 广义:GUI,CLI GUI: CLI: 词法分析:命令,选项,参数 内建命令: 外部命令 ...

  6. Linux Shell脚本编程--Linux特殊符号大全

    Linux Shell脚本编程--Linux特殊符号大全 linux_shell 特殊符号的介绍 2011

  7. Linux Shell脚本编程-基础1

    概述:  shell脚本在Linux系统管理员的运维工作中非常重要.shell脚本能够帮助我们很方便的管理服务器,因为我们可以指定一个任务计划,定时的去执行某一个脚本以满足我们的需求.本篇将从编程基础 ...

  8. 【学习】Linux Shell脚本编程

    1.脚本的组成和执行 Linux shell脚本的结构并不复杂,其主要由变量.内部命令以及shell的语法结构和一些函数.其他命令行的程序等组成,以下是一个简单的shell脚本. #!/bin/bas ...

  9. Linux shell脚本编程基础之练习篇

    shell脚本编程基础之练习篇. 1.编写一个脚本使我们在写一个脚本时自动生成”#!/bin/bash”这一行和注释信息. #!/bin/bash ] then echo "请输入一个参数& ...

随机推荐

  1. git diff 理解

    0. 理解 git diff 返回信息 1. 命令 $ git diff README.md 2. 返回信息,注解 diff --git a/README.md b/README.md ## 1. 表 ...

  2. RabbitMQ 常用操作

    RabbitMQ简介 1.首先安装erlang rpm -Uvh https://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el7.centos ...

  3. Unity全面的面试题(包含答案)

    一:什么是协同程序? 在主线程运行的同时开启另一段逻辑处理,来协助当前程序的执行,协程很像多线程,但是不是多线程,Unity的协程实在每帧结束之后去检测yield的条件是否满足. 二:Unity3D中 ...

  4. confluence与jira账号对接、查看到期时间及问题总结

    前面介绍了对于confluence和jira的破解版安装记录,下面简单记录下confluence和jira结合配置:安装顺序:先安装Jira,然后安装Confluence,在Confluence安装过 ...

  5. workman的学习总结

    我们知道php主要是用来做web应用的,而且平时使用的都是都是和其他的web服务器来结合使用,比如和apache,nginx和apache的时候,是作为apache的一个动态模块来加载,和nginx的 ...

  6. Windows.UI.Cred.dll损坏导致不能设置 PIN 密码

    心血来潮,重装系统. 然后发现不能设置 PIN,UWP界面在输完两个PIN后直接卡死(第一次设置的时候不需要输入第一行的PIN) google无果,打开系统日志,发现 上网下载一个对应版本的Windo ...

  7. JavaScript中子类调用父类方法的实现

    一.前言 最近在项目中,前端框架使用JavaScript面向对象编程,遇到了诸多问题,其中最典型的问题就是子类调用父类(super class)同名方法,也就是如C#中子类中调用父类函数base.** ...

  8. javascript 最全面的数组操作合集

    一.数组添加.删除.替换.截取操作 1.arr.unshift(1) 在数组头部添加一个元素 1 (直接改变原数组,返回值为添加元素后数组的length) 2.arr.shift() 在数组的头部删除 ...

  9. vue elementui 引入第三方icon iconfront

    elementui框架自带icon在开发大型前端应用时显得捉襟见肘.淘宝开源的iconfront的图标库上有很多优秀的icon图标.elementui支持整合iconfront到应用中,步骤如下: 首 ...

  10. python基础学习笔记 - 备忘

    基础中的基础 Python标识符 命名规则: Python标识符区分大小写. 可以包括英文.数字以及下划线,但不能以数字开头. 以下划线开头的标识符是有特殊意义的: a)         以单下划线开 ...