案例1:写个for循环的脚本需求,我让你计算1到100全部数字的和。shell
上图有了数字以后就去作加减法bash
[root@100xuni1 shell]# sh -x for1.sh ##执行查询过程 + sum=0 ##sum=0 ++ seq 1 100 + for i in '`seq 1 100`' ##循环一次是1+0等于1 + sum=1 + for i in '`seq 1 100`' ##第二次循环是1+2等于3 + sum=3 + for i in '`seq 1 100`' ##第三次循环 3+3等于6 + sum=6 + for i in '`seq 1 100`' ##第四次循环6+4等于10 如下以此类推 + sum=10 + for i in '`seq 1 100`' + sum=15 + for i in '`seq 1 100`' + sum=21 + for i in '`seq 1 100`' + sum=28 + for i in '`seq 1 100`' + sum=36 + for i in '`seq 1 100`' + sum=45 + for i in '`seq 1 100`' + sum=55 + for i in '`seq 1 100`' + sum=66 + for i in '`seq 1 100`' + sum=78 + for i in '`seq 1 100`' + sum=91 + for i in '`seq 1 100`' + sum=105 + for i in '`seq 1 100`' + sum=120 + for i in '`seq 1 100`' + sum=136 + for i in '`seq 1 100`' + sum=153 + for i in '`seq 1 100`' + sum=171 + for i in '`seq 1 100`' + sum=190 + for i in '`seq 1 100`' + sum=210 + for i in '`seq 1 100`' + sum=231 + for i in '`seq 1 100`' + sum=253 + for i in '`seq 1 100`' + sum=276 + for i in '`seq 1 100`' + sum=300 + for i in '`seq 1 100`' + sum=325 + for i in '`seq 1 100`' + sum=351 + for i in '`seq 1 100`' + sum=378 + for i in '`seq 1 100`' + sum=406 + for i in '`seq 1 100`' + sum=435 + for i in '`seq 1 100`' + sum=465 + for i in '`seq 1 100`' + sum=496 + for i in '`seq 1 100`' + sum=528 + for i in '`seq 1 100`' + sum=561 + for i in '`seq 1 100`' + sum=595 + for i in '`seq 1 100`' + sum=630 + for i in '`seq 1 100`' + sum=666 + for i in '`seq 1 100`' + sum=703 + for i in '`seq 1 100`' + sum=741 + for i in '`seq 1 100`' + sum=780 + for i in '`seq 1 100`' + sum=820 + for i in '`seq 1 100`' + sum=861 + for i in '`seq 1 100`' + sum=903 + for i in '`seq 1 100`' + sum=946 + for i in '`seq 1 100`' + sum=990 + for i in '`seq 1 100`' + sum=1035 + for i in '`seq 1 100`' + sum=1081 + for i in '`seq 1 100`' + sum=1128 + for i in '`seq 1 100`' + sum=1176 + for i in '`seq 1 100`' + sum=1225 + for i in '`seq 1 100`' + sum=1275 + for i in '`seq 1 100`' + sum=1326 + for i in '`seq 1 100`' + sum=1378 + for i in '`seq 1 100`' + sum=1431 + for i in '`seq 1 100`' + sum=1485 + for i in '`seq 1 100`' + sum=1540 + for i in '`seq 1 100`' + sum=1596 + for i in '`seq 1 100`' + sum=1653 + for i in '`seq 1 100`' + sum=1711 + for i in '`seq 1 100`' + sum=1770 + for i in '`seq 1 100`' + sum=1830 + for i in '`seq 1 100`' + sum=1891 + for i in '`seq 1 100`' + sum=1953 + for i in '`seq 1 100`' + sum=2016 + for i in '`seq 1 100`' + sum=2080 + for i in '`seq 1 100`' + sum=2145 + for i in '`seq 1 100`' + sum=2211 + for i in '`seq 1 100`' + sum=2278 + for i in '`seq 1 100`' + sum=2346 + for i in '`seq 1 100`' + sum=2415 + for i in '`seq 1 100`' + sum=2485 + for i in '`seq 1 100`' + sum=2556 + for i in '`seq 1 100`' + sum=2628 + for i in '`seq 1 100`' + sum=2701 + for i in '`seq 1 100`' + sum=2775 + for i in '`seq 1 100`' + sum=2850 + for i in '`seq 1 100`' + sum=2926 + for i in '`seq 1 100`' + sum=3003 + for i in '`seq 1 100`' + sum=3081 + for i in '`seq 1 100`' + sum=3160 + for i in '`seq 1 100`' + sum=3240 + for i in '`seq 1 100`' + sum=3321 + for i in '`seq 1 100`' + sum=3403 + for i in '`seq 1 100`' + sum=3486 + for i in '`seq 1 100`' + sum=3570 + for i in '`seq 1 100`' + sum=3655 + for i in '`seq 1 100`' + sum=3741 + for i in '`seq 1 100`' + sum=3828 + for i in '`seq 1 100`' + sum=3916 + for i in '`seq 1 100`' + sum=4005 + for i in '`seq 1 100`' + sum=4095 + for i in '`seq 1 100`' + sum=4186 + for i in '`seq 1 100`' + sum=4278 + for i in '`seq 1 100`' + sum=4371 + for i in '`seq 1 100`' + sum=4465 + for i in '`seq 1 100`' + sum=4560 + for i in '`seq 1 100`' + sum=4656 + for i in '`seq 1 100`' + sum=4753 + for i in '`seq 1 100`' + sum=4851 + for i in '`seq 1 100`' + sum=4950 + for i in '`seq 1 100`' + sum=5050 + echo 5050 5050
查看每次循环的值ide
[root@100xuni1 shell]# sh for1.sh 0 + 1 1 1 + 2 3 3 + 3 6 6 + 4 10 10 + 5 15 15 + 6 21 21 + 7 28 28 + 8 36 36 + 9 45 45 + 10 55 55 + 11 66 66 + 12 78 78 + 13 91 91 + 14 105 105 + 15 120 120 + 16 136 136 + 17 153 153 + 18 171 171 + 19 190 190 + 20 210 210 + 21 231 231 + 22 253 253 + 23 276 276 + 24 300 300 + 25 325 325 + 26 351 351 + 27 378 378 + 28 406 406 + 29 435 435 + 30 465 465 + 31 496 496 + 32 528 528 + 33 561 561 + 34 595 595 + 35 630 630 + 36 666 666 + 37 703 703 + 38 741 741 + 39 780 780 + 40 820 820 + 41 861 861 + 42 903 903 + 43 946 946 + 44 990 990 + 45 1035 1035 + 46 1081 1081 + 47 1128 1128 + 48 1176 1176 + 49 1225 1225 + 50 1275 1275 + 51 1326 1326 + 52 1378 1378 + 53 1431 1431 + 54 1485 1485 + 55 1540 1540 + 56 1596 1596 + 57 1653 1653 + 58 1711 1711 + 59 1770 1770 + 60 1830 1830 + 61 1891 1891 + 62 1953 1953 + 63 2016 2016 + 64 2080 2080 + 65 2145 2145 + 66 2211 2211 + 67 2278 2278 + 68 2346 2346 + 69 2415 2415 + 70 2485 2485 + 71 2556 2556 + 72 2628 2628 + 73 2701 2701 + 74 2775 2775 + 75 2850 2850 + 76 2926 2926 + 77 3003 3003 + 78 3081 3081 + 79 3160 3160 + 80 3240 3240 + 81 3321 3321 + 82 3403 3403 + 83 3486 3486 + 84 3570 3570 + 85 3655 3655 + 86 3741 3741 + 87 3828 3828 + 88 3916 3916 + 89 4005 4005 + 90 4095 4095 + 91 4186 4186 + 92 4278 4278 + 93 4371 4371 + 94 4465 4465 + 95 4560 4560 + 96 4656 4656 + 97 4753 4753 + 98 4851 4851 + 99 4950 4950 + 100 5050 5050
把/etc下的文件作下编译,把全部目录里边的文件所有ls列出来3d
需求每隔半分钟检查下系统的负载,当系统的负载大于10的时候就发一封邮件,这是个监控脚本code
例子以下blog
#!/bin/bash while : ##冒号表示死循环 do load=`w|head -1|awk -F 'load average: ' '{print $2}'|cut -d. -f1` ##这条的命令会把系统的负载复制到load这个变量里 if [ $load -gt 10 ] ##逻辑判断当load大于10的时候 then ##而后怎么办 /usr/local/sbin/mail.py xxx@qq.com "load high" "$load" ##发邮件给 xxx@qq.com,第二个参数主题load high 第三个主题$load fi sleep 30 ##间断的时间30秒查一次 done
while循环案例2,死循环脚本,在循环当中须要你去人为的交互输入一个数字,检测数字是否是你想要的东西input
#!/bin/bash while : do read -p "Please input a number: " n ## if [ -z "$n" ] then echo "you need input sth." continue ##继续执行大循环 fi n1=`echo $n|sed 's/[0-9]//g'` if [ -n "$n1" ] then echo "you just only input numbers." continue fi break done echo $n
#!/bin/bash for i in `seq 1 5` do echo $i ##把i的值输出 if [ $i -eq 3 ] ##而后作个判断,当i等于3的时候 then break ##跳出循环 fi echo $i done echo aaaa