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.www58058.com/37400

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

相關推薦

  • varnish原理及配置事例

    Varnish是一款高性能的開源HTTP加速器(其實就是帶緩存的反向代理服務),可以把http響應內容緩存到內存或文件中,從而提高web服務器響應速度。與傳統的 squid 相比,varnish 具有性能更高、速度更快、管理更加方便等諸多優點,很多大型的網站都開始嘗試使用 varnish 來替換 squid,這些都促進 varnish 迅速發展起來 Varn…

    Linux干貨 2015-12-06
  • Linux進程管理和性能監控

    概述     監控系統的各方面的性能,保障各類服務的有序運行,是運維工作的重要組成部分,本篇就介紹一些常用的系統監控命令和相關參數的說明     具體包含以下幾個部分:         1、進程管理基…

    Linux干貨 2016-09-07
  • lnmp部署實驗

    Lnmp部署 實驗環境: 1、Centos 7主機一臺,客戶機一臺。 2、在centos 7主機上部署:    Nginx  php-fpm  php-mysql  mariadb-server 實驗步驟: 1、啟動nginx服務,確保80端口打開,啟動mariadb-server,確保3306端口…

    Linux干貨 2016-10-30
  • 正則表達式及其用法

    正則表達式及其用法 1.   什么是正則表達式 正則表達式是Global search REgular expression and Print out the line的縮寫。是一類用字符所書寫的模式,其中許多字符并不表示其字面意義,而是表達控制或通配等功能。 在Linux中,用正則表達式搜索文本的常用命令: grep: 使用基本正則表…

    Linux干貨 2015-09-14
  • linux 故障—-/boot刪除 修復

    LINUX        /BOOT        SHANCHU 光盤進入resuce  第①步;修復內核文件 shell start shell 首先先切根 chroot &n…

    Linux干貨 2016-09-13
  • Linux運維之路-Linux基礎學習三

    先學會用戶組和文件的屬性,才知道怎么去管理

    Linux干貨 2017-11-26
欧美性久久久久