8.16

for 循环是相对比较简单的循环,任何一个循环里面都可以嵌套循环,用for可以解决简单逻辑上的任何循环

有两种基本格式:for i in " ";do

        或者dor((i=0;i<=9;i++))可以嵌套if或者while等循环

if循环。最重要的是判断的条件,if意为如果什么就怎样怎样,所以这里if条件判断经常出错就是在这,这里我就不对中括号,小括号用法再一一赘述了,之前说过。

while,当型循环,表述起来比for复杂一点,因为for有简化版条件,while只能在循环体里进行变量加减操作。

until循环,直到什么才怎样怎样,是。while的反例。非常擅长执行定时任务,所以说每个任务都各有所长,关键就在于使用的时候互相配合使用,达到既简化操作又完成目的的目标。

用until 解决

1、每隔3秒钟到系统上获取已经登录的用户的信息;如果发现用户hacker登录,则将登录时间和主机记录于日志/var/log/login.log中,并提示该用户退出系统。

username=`uptime | cut -d"," -f2 | grep -o "hacker"`

until [  -n  $username ] ;do uptime sleep3;done

2、随机生成10以内的数字,实现猜字游戏,提示比较大或小,相等则退出

read -p "please input your number" n

declare -i a=(($RANDOM%10))

until [  $n -eq $a ];do

    [  $n -gt  $a    ] && echo "you win" || echo "you lose"

done

exit 1

3、编写脚本,求100以内所有正整数之和

sum=0

i=1

until  $i>100;do

((sum=sum+i))

((i++))

done

echo sum is $sum.

4、编写脚本,通过ping命令探测172.16.250.1-254范围内的所有主机的在线状态,统计在线主机和离线主机各多少。

ip=172.16.250.

i=1

a=0

until $i>254;do

ping -W1 -c2 $ip$i &> /dev/null  && (echo "the host is on"  let a=a+1)|| echo "the host is off"

done

echo "the online host is $a"

echo "the halt host is $((254-$a))'

5、编写脚本,打印九九乘法表

i=1

j=1

until $i>9;do

   until $j>$i;do

     echo $i*$j=$(($i*$j))

   done

   echo 

6、编写脚本,利用变量RANDOM生成10个随机数字,输出这个10数字,并显示其中的最大者和最小者

利用数组来做

declare -a  ran 

declare -i  max=0

declare -i  min=11

for((j=0;j<=9;j++)) ;do

      ran[$j]=$((RANDOM%10))

      echo "${ran[$j]}"

   [  ${ran[$j]} -le $min  ] && min=${ran[$j]}

   [  ${ran[$j]} -ge $max  ] && max=${ran[$j]}

done

echo MAX:$max

echo MIN:$min

利用until

7、编写脚本,实现打印国际象棋棋盘

read -p "please input your number"n

i=1

j=1

until  $i>$n;do

   until $j>$n;do  

      [  $((($i+$j)%2)) -eq  0 ] && echo -en "\033[47m  \033[0m" || echo -en "\033[41m  \033[0m"

   done

echo

done   

8、打印等腰三角形

read -p "please input your number" n

i=1

until (($i>$n));do

 echo""

原创文章,作者:sjfbjs,如若转载,请注明出处:http://www.178linux.com/37400

(0)
sjfbjssjfbjs
上一篇 2016-08-19
下一篇 2016-08-19

相关推荐

  • python装饰器详解

    python之装饰器详解 一、装饰器定义 定义一个函数,可以接受一个函数作为参数,对该函数进行一些包装,不改变函数的本身。 二、装饰器四部曲(分解) 1、函数可赋值给变量。若赋值给变量的是调用后的函数,变量的值就是return的返回值。 切记:函数赋值给变量,只看return的值。分清楚函数是处于调用状态还是未被调用状态。若函数没有写return,默认ret…

    2017-02-08
  • 马哥教育网络班20期+第3周课程练习

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@localhost ~]# who root     pts/0        2016-06-23&nb…

    Linux干货 2016-06-29
  • Linux网络管理相关工具

      Linux本身提供了许多用于网络测试、网络排错、网络状态分析的工具,下面来看几个比较常用的工具。   一、ping命令   ping命令是利用ICMP协议还测试网络的连通性。   命令格式:ping [option] IP     常用选项:       -c #:…

    Linux干货 2016-01-14
  • 8月20日软件包管理

    软件包管理 本章内容 软件运行环境 软件包基础 Rpm包管理 yum管理 定制yum仓库 编译安装 软件运行环境 API:Application Programming Interface     POSIX:Portable OS 程序源代码–>预处理–>编译–>…

    Linux干货 2016-08-21
  • 优云Automation:实现IT服务弹性伸缩的利器

    随着互联网业务快速持续增长,IT资源使用量按需变化成为常态,这就要求信息部门能快速响应资源使用的变化要求,对运维提出不小挑战。比如电商、在线教育等企业经常推出一些秒杀、抢红包活动,在特定时间段对资源的利用处于高峰期,之后基本处于空闲。 几年前,我们从申请采购到应用部署上线都只能人工操作,需要提前几个月开始规划。如今通过云平台能很好实现资源按需动态管理,运维人…

    系统运维 2017-03-15