for,while,until循環

一、用until實現下列作業

1、每隔3秒鐘到系統上獲取已經登錄的用戶的信息;如果發現用戶hacker登錄,則將登錄時間和主機記錄于日志/var/log/login.log中,并提示該用戶退出系統。

#!/bin/bash

until  who | grep "^\<hacker\>" > /var/log/login.log && echo "you must logout" | write jack

do

    sleep 3s

done

2、隨機生成10以內的數字,實現猜字游戲,提示比較大或小,相等則退出

#!/bin/bash

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

declare -i n=10000000000000000

until [ "$n" -eq "$r" ] && echo "you are so clear" 

do

read -p "you can guess a number[0-10]:" n

     if [ "$n" -gt "$r" ]

        then

        echo "you guess great"

     elif

        [ "$n" -lt "$r" ]

        then

        echo "you guess less"

     fi

done

3、編寫腳本,求100以內所有正整數之和

#!/bin/bash

declare -i i=1

declare -i sum=0

until [ $i -eq 101 ] ; do

        sum=$[$sum+$i]

        i=$[$i+1]

done

echo "sum1..100:$sum"

4、編寫腳本,通過ping命令探測172.16.250.1-254范圍內的所有主機的在線狀態,統計在線主機和離線主機各多少。

#!/bin/bash

declare -i i=1

declare -i y=0

declare -i n=0

until [ $i -eq 255 ];do

ping -c 1 -W 1 10.1.252.$i &> /dev/null && y=$[$y+1] || n=$[$n+1]

i=$[$i+1]

done

echo "ping up:$y"

echo "ping down:$n"

5、編寫腳本,打印九九乘法表

#!/bin/bash

i=1 

until [ $i -ge 10 ]; do

j=1

until [ $j -gt $i ];do

echo -ne ""$j"x"$i"=$[$i*$j]\t"

j=$[$j+1]

done

    i=$[$i+1]

    echo

done

6、編寫腳本,利用變量RANDOM生成10個隨機數字,輸出這個10數字,并顯示其中的最大者和最小者

until做法:

#!/bin/bash

MAX=$RANDOM MIN=$MAX i=1

until [ $i -ge 11 ] ; do

      n=$RANDOM

      i=$[$i+1]

      [ $MAX -ge $n ] && MAX=$MAX || MAX=$n

      [ $MIN -le $n ] && MIN=$MIN || MIN=$n

echo $n

done

echo "MAX=$MAX"

echo "MIN=$MIN"

while做法:

#!/bin/bash

i=1 a=$RANDOM

echo $a 

b=$a

while [ $i -le 9 ];do

    n=$RANDOM

echo $n

    i=$[$i+1]

    [ $n -gt $a ] && a=$n || a=$a 

    [ $n -lt $b ] && b=$n || b=$b

done       

  echo "MAX $a"       

  echo "MIN $b"

7、編寫腳本,實現打印國際象棋棋盤

until做法:

#/bin/bash

i=1

until [ $i -gt 9 ];do

j=1

        until [ $j -gt 9 ];do

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

j=$[$j+1]

    done

i=$[$i+1]

  echo 

done

for做法:

#/bin/bash

for i in {1..8}

do 

for j in {1..8}

    do

 if [ $j -lt 8 ] ; then

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

 else

      [ "$[$[$i+$j]%2]" -eq 0 ] && echo -e "\033[41m  \033[0m" || echo -e "\033[45m  \033[0m"

      j=j++

 fi

done

i=i++

done 

原創文章,作者:zebra930,如若轉載,請注明出處:http://www.www58058.com/37131

(0)
zebra930zebra930
上一篇 2016-08-22 09:29
下一篇 2016-08-22 09:29

相關推薦

  • 關于網絡幾個比較有意義的實驗

    這里我就偷懶,不寫過多的6上面的bind的過多步驟了,具體實現的功能就是一個bind1,當然我這里少配了一個網卡。另外一個網卡的配置格式參照eth0即可。 在這里我要重點說一下這個NETWORKMANNAGER這個程序,同學們最好在做的時候將其設置為關閉,具體方法chekconfig NtworkManager stopped 即可。 下面還有一個叫做網絡兩…

    學員作品 2016-09-07
  • Centos啟動流程及服務腳本(work)

    centos啟動流程 簡單流程簡介: POST –> Boot Sequence(BIOS) –> Boot Loader (MBR) –> Kernel(ramdisk) –> rootfs –> switchroot –> /sbin/init &…

    學員作品 2016-09-14
  • 馬哥教育網絡班20期-第八周課程作業

    1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。 網橋將兩個相似的網絡連接起來,并對網絡數據的流通進行管理。它工作于數據鏈路層,不但能擴展網絡的距離或范圍,而且可提高網絡的性能、可靠性和安全性。 集線器的英文稱為“Hub”。主要功能是對接收到的信號進行再生整形放大,以擴大網絡的傳輸距離,同時把所有節點集中在以它為中心的節點上。它…

    學員作品 2016-09-08
  • Selinux的基本命令及練習

    配置SELinux 相關命令:       getenforce: 獲取selinux當前狀態       sestatus :查看selinux狀態      &nbs…

    學員作品 2016-09-19
  • 馬哥教育網絡班20期+第11周課程練習

    1、詳細描述一次加密通訊的過程,結合圖示最佳。 2、描述創建私有CA的過程,以及為客戶端發來的證書請求進行辦法證書。 3、描述DNS查詢過程以及DNS服務器類別。 4、搭建一套DNS服務器,負責解析magedu.com域名(自行設定主機名及IP) (1)、能夠對一些主機名進行正向解析和逆向解析; (2)、對子域cdn.magedu.com進行子域授權,子域負…

    學員作品 2016-09-05
  • 馬哥團隊帶你領略阿里風景

    馬哥團隊帶你揭秘互聯網巨頭公司—阿里巴巴 繼馬哥團隊騰訊一行之后,4月中旬我們又來到了坐落于杭州的另一個互聯網巨頭公司。 波濤萬里長江水,帶你入杭州。 真情伴你走,春色為你留。 西湖煙水茫茫,百頃風潭,十里荷香。 風景甚好,怎能不去杭州的阿里巴巴轉轉呢? 帶著“淡妝”,走,跟著我們前行…… 馬哥更是笑道:“我們這次來是和馬云談合作的!讓我們培訓出來的更多同學…

    學員作品 2015-04-29
欧美性久久久久