Linux Shell脚本编程while语句案例

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

#!/bin/bash

while true
do
    uptime
    sleep 3
done

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

[email protected]:~/linux/shell/flow_control$ sh while.sh &
[1] 12867
#!/bin/bash

while true
do
    uptime >> log.txt
    sleep 3
done
[email protected]:~/linux/shell/flow_control$ tail -f log.txt
 06:14:32 up 33 min,  1 user,  load average: 0.33, 0.35, 0.32
 06:14:35 up 33 min,  1 user,  load average: 0.33, 0.35, 0.32
 06:14:38 up 33 min,  1 user,  load average: 0.31, 0.34, 0
...

3,进程调度相关命令

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

bg: 把任务放到后台执行

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

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

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

[email protected]:~/linux/shell/flow_control$ fg
sh while.sh
^Z
[1]+  Stopped                 sh while.sh
[email protected]:~/linux/shell/flow_control$ jobs
[1]+  Stopped                 sh while.sh
[email protected]:~/linux/shell/flow_control$ bg
[1]+ sh while.sh &
[email protected]:~/linux/shell/flow_control$ jobs
[1]+  Running                 sh while.sh &
[email protected]:~/linux/shell/flow_control$ sh while.sh &
[2] 13411
[email protected]:~/linux/shell/flow_control$ jobs
[1]-  Running                 sh while.sh &
[2]+  Running                 sh while.sh &
[email protected]:~/linux/shell/flow_control$ fg
sh while.sh
^Z
[2]+  Stopped                 sh while.sh
[email protected]:~/linux/shell/flow_control$ bg
[2]+ sh while.sh &
[email protected]:~/linux/shell/flow_control$ jobs
[1]-  Running                 sh while.sh &
[2]+  Running                 sh while.sh &

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

#!/bin/bash
i=0
while [ $i -lt 5 ]
do
    echo $i
    (( i++ ))
done

两个中括号也可以

#!/bin/bash
i=0
while [[ $i -lt 5 ]]
do
    echo $i
    (( i++ ))
done

还可以用计算表达式

#!/bin/bash
i=0
while (( i < 5 ))
do
    echo $i
    (( i++ ))
done

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

[email protected]:~/linux/shell/flow_control$ sh sum.sh
1+2+3..+100=5050
[email protected]:~/linux/shell/flow_control$ cat sum.sh
#!/bin/bash

i=1
sum=0
while (( i <= 100 ))
do
    (( sum = sum + i ))
    (( i++ ))
done
echo "1+2+3..+100="${sum}

6,猜数字

#!/usr/bin/bash

sum=$((RANDOM%51))

echo "需要你猜的数是:"$sum

sleep 1

echo "请输入1-50之间的数,开始猜吧!"

count=0

function type_num(){
    read -p "请输入一个数吧:" n
    expr $n + 1 &>/dev/null
    if [ $? -ne 0 ]; then
        echo "请输入一个数字"
        type_num
    fi
}

function guess(){
    (( count++ ))
    if [ $n -eq $sum ]; then
        echo "你猜中了,你的次数是:"${count}
        if [ $count -lt 3 ]; then
            echo "你太厉害了"
        elif [ $count -ge 3 -a $count -lt 6 ]; then
            echo "还是不错的,加油"
        else
            echo "你有点水啊"
        fi
        exit 0
    elif [ $n -gt $sum ]; then
        echo "猜大了"
        type_num
    else
        echo "猜小了"
        type_num
    fi
}

function main(){
    type_num
    while true
    do
        guess
    done
}

main

原文地址:https://www.cnblogs.com/ghostwu/p/9114660.html

时间: 2025-01-10 07:02:20

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

Linux Shell脚本编程while语句

Linux Shell脚本编程while语句案例 1,每隔3秒,打印一次系统负载 #!/bin/bash while truedo    uptime    sleep 3done 2,把监控结果保存到文件,在后台执行,然后用tail -f监控文件变化[email protected]:~/linux/shell/flow_control$ sh while.sh &[1] 12867 #!/bin/bash while truedo    uptime >> log.txt    s

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

if 语句格式if  条件then Commandelse Commandfi        别忘了这个结尾If语句忘了结尾fitest.sh: line 14: syntax error: unexpected end of fi     if 的三种条件表达式 ifcommandthen if 函数then 命令执行成功,等于返回0 (比如grep ,找到匹配)执行失败,返回非0 (grep,没找到匹配)if [ expression_r_r_r  ]then    表达式结果为真,则返回0

Linux系统shell脚本编程——生产实战案例

Linux系统shell脚本编程--生产实战案例     在日常的生产环境中,可能会遇到需要批量检查内网目前在线的主机IP地址有哪些,还可能需要检查这些在线的主机哪些端口是开放状态,因此依靠手工来检查是可以实现,但比较费时费力,所以需要结合shell脚本来实现批量检查的功能,那么今天就来做个小小的实验. 1.开发脚本前准备 一般大家都知道,测试主机是否在线,常用的命令无非就是ping.nmap,因此,首先找一个地址来测试下ping命令的效果 [[email protected] scripts]

Linux Shell脚本编程学习笔记和实战

http://www.1987.name/141.html shell基础 终端打印.算术运算.常用变量 Linux下搜索指定目录下特定字符串并高亮显示匹配关键词 从键盘或文件中获取标准输入 [read命令] 文件的描述符和重定向 数组.关联数组和别名使用 函数的定义.执行.传参和递归函数 条件测试操作与流程控制语句 获取时间日期格式和延时 [date.sleep命令] 内部字段分隔符IFS和脚本的调试DEBUG 显示.读取或拼接文件内容 [cat命令] 文件查找与打印文件列表 [find命令]

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

shell脚本编程基础之练习篇. 1.编写一个脚本使我们在写一个脚本时自动生成”#!/bin/bash”这一行和注释信息. #!/bin/bash if [ $# -ne 1 ] then echo "请输入一个参数" exit else echo "参数正确" newfile=$1 fi #echo `grep "^#\!" ${newfile}` if ! grep "^#\!" ${newfile} &>/

Linux shell脚本编程详解及应用实例

什么是shell脚本? 1.shell脚本:是一种解释型语言,不需要提前进行编译,只需将代码转化成中间代码,边解释边运行,执行效率稍逊于编译型语言,跨平台性好.而编译型语言则需要提前进行编译转化为二进制文件,靠近底层硬件执行效率高,可移植性差. 2.shell的首行严格来说使用shebang机制:由#和!构成的字符序列,在类unix系统中程序的载入器将其后的内容,当做解释器的指令,并将载有shebang文件路径作为解释器的参数,且予以调用. shell及其他解释型语言的一般格式?  #!/bin

Unix/Linux shell脚本编程学习--Shell Script II

Shell Script II 10.Shell echo命令 echo "OK!\n”   #显示换行 echo "It is a test" echo无拼接字符时后一般可以不使用”引号”,从上面可看出,双引号可有可无,单引号主要用在原样输出中. 显示结果重定向保存至文件: vim myfile 创建文件 echo "It is a test" > myfile cat myfile 查看文件内容 若需要原样输出字符串(不进行转义),请使用单引号.

Linux Shell脚本编程基础

1. 脚本是一个包含一系列命令序列的文本文件,当运行这个脚本文件时,文件中包含的命令序列将得到执行. 2. 脚本主要由两部分组成:脚本解释器和命令序列 注:#!/bin/bash 指明脚本解释器为Bash Shell 3. Shell脚本允许用户设置和使用自己的变量,变量可以使数字或者字符串,用户无需指定其类型,也无需在使用前定义. 注:(1)定义时无需加"$" (2)赋值“=”左右不能有空格 (3)注释用“#” 4. 同C程序一样,Shell脚本也可以使用命令行参数 (1)$#:传入

Linux shell脚本编程

shell脚本 shell为非类型的解释型语言,即给变量赋值时就已为其定义. #!/bin/bash //环境说明 - chmod o+x 文件名 //命令行运行 /bin/bash 文件名 //同上作用 $变量名 //引用变量 $0 //当前程序的名称(系统早先定义) $n //第n个参数 $* //全部参数 $PWD //当前所在的目录 -f //文件是否存在 -d //目录是否存在 -s //检查文件是否为空(比较成功时表示含有数据:通常在删除文件时使用) -nt:-ot //比较一个文件