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 11:36
下一篇 2016-08-19 11:50

相關推薦

  • 系統基礎之Btrfs文件系統詳解

    btrfs文件系統:技術預覽版(centos7) 描述: Btrfs(B-tree,Butter FS,Better fs),GPL授權,Orale,2007 寫實復制特性(Cow)     cp –reflink (只能在btrfs文件系統中使用) 想取代ext系統系統, 支…

    Linux干貨 2016-09-21
  • 任務計劃

    Linux 任務計劃、周期性任務執行 未來的某時間點執行一次任務 at batch :系統 自行選擇空閑時間去執行此處指定的任務 周期性運行某任務 cron [root@localhost ~]# rpm -q at (CentOS6中使用) at-3.1.10-48.el6.x86_64 [root@localhost ~]# rpm -ql at /et…

    Linux干貨 2017-05-13
  • grep的使用和正則表達式

           grep作為Linux中的文本編輯的三劍客之一,它的功能很強大,并不是虛傳,學會了grep在文本中找我們要找的的字符串總是能很輕易地找到,grep不僅僅就這一點功能,它在我們工作上也會對我們有很大的幫助。下面我來介紹一下grep的簡單的功能。 grep :文本過濾( 模式:patter…

    Linux干貨 2016-08-10
  • vim快捷方式

    Vim是從 vi 發展出來的一個文本編輯器。代碼補全、編譯及錯誤跳轉等方便編程的功能特別豐富,在程序員中被廣泛使用,和Emacs并列成為類Unix系統用戶最喜歡的文本編輯器

    Linux干貨 2017-11-26
  • Linux正則表達式

    正則表達式

    2017-12-24
  • Mariadb數據庫復制系列(一):主從復制

      實驗一:MySQL主從復制的實現 1、實驗環境 確保各節點之間的時間同步 2、修改主節點的mysql服務配置文件,讓其符合主從架構中主節點的要求 3、查看主節點現有數據情況和二進制日志使用情況 4、對主節點的數據利用xtrabackup進行完全備份 由于兩個從節點是后期加入,故采取備份主節點的數據,還原到從節點上,然后讓從節點從備份時刻的二進制日志的位置…

    2016-11-24
欧美性久久久久