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
下一篇 2016-08-22

相關推薦

  • Linux系統安裝

    概述:     上篇我們討論了下關于Linux系統的啟動流程和grub相關的內容,本篇將介紹一下Linux的系統安裝相關的內容,具體分為:     1、系統安裝程序anaconda的介紹     2、kickstart文件的介紹 &nbsp…

    學員作品 2016-09-15
  • 關于shell變量計算中單中括號與雙中括號、單引號與雙引號的一些看法

      單中括號是比較基本的變量計算及數值比較的方法,一般情況下已經足夠使用;雙中括號是擴展的數值比較方法,里面的數值計算也相對來說復雜些。這里我推薦大家平常工作中使用單中括號即可,滿足日常的工作,不做運維開發的話,雙括號方面涉及不多。   這里我還得提下單括號與雙括號,這里也是我經常混淆的地方,其實理解了也就輕松多了。單括號是對一段比較長的…

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

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

    學員作品 2016-09-19
  • 馬哥團隊帶你揭秘互聯網巨頭公司—騰訊

    馬哥團隊帶你揭秘互聯網巨頭公司—騰訊 前幾日,馬哥團隊成員受邀,到國內互聯網巨頭–騰訊參觀和交流,并用照片記錄下了一些精彩瞬間,這里分享給大家。(希望大家多多努力,早日進入頂級公司) 剛到騰訊大廈,上到公司門口,是騰訊的前臺,(沒想到前臺是個男同胞) 進來后,騰訊的照片墻,十分有質感 訪客必須先登記,會給發放一個騰訊的訪客門牌。 公司…

    學員作品 2015-04-14
  • 【驚爆】馬哥linux2016最新全套課程(內部泄密版)

    你知道么,馬哥linux2016最新全套課程(內部泄密版)被曝光了,小編剛剛得到消息,然后就給大家分享出來了,大家快來點評下,話說2016版課程如何?且聽小編慢慢為你道來 全新內容,全新陣容,引入ELK和Docker內容,更加貼合生產環境應用,全新的Centos7搭載完善的實戰實驗室,強大的不像實力派,特別需要說明的一點:0首付0利率,機會不容錯過?。?! 高…

    學員作品 2015-10-21
  • 馬哥教育網絡第20期-第一周作業

    第一周博客作業1、 描述計算機的組成及其功能。 運算器、控制器、存儲器、輸入設備、輸出設備運算器、控制器 :cpu 運算和邏輯計算存儲器:緩存和保存數據輸入設備、輸出設備:用戶和計算機交互設備和界面 2、 按系列羅列Linux的發行版,并描述不同發行版之間的聯系與區別。 Slackware系列: suse   opensuse debian系列: …

    學員作品 2016-06-23
欧美性久久久久