linux shell程式設計
最近在鞏固shell程式設計,把《Linux Shell 命令列及指令碼程式設計例項講解》一書過了一遍,雖然在閱讀過程中也有在自己機器上實現書中樣例,但是感覺動手還是偏少,並且樣例均是知識點的講解,感覺不夠連續,於是在網上搜一些shell程式設計的題目,其中有一篇感覺還比較簡單,先拿來練練手,找找信心。
題目描述:需要從一批學生中隨機抽取10名參加活動,抽取方法為讓學生輸入自己的名字,隨之生成一個0到99之間的數字,數字從大到小排序,前10名為參加活動的學生。
要求1:前面抽過的數字,後面的同學不能再抽到,避免出現同樣大小的數字。
要求2:將名學生字和抽到的數字記錄到檔案中。
要求3:學生輸入名字後,螢幕輸出其名字和抽到的數字,程式不退出,繼續等待下個學生的輸入。
實現程式碼如下:
點選(此處)摺疊或開啟
- #!/bin/bash
- #宣告一個陣列,用於存放已經抽到的數字
- declare -a number_array
- i=0
- num=0
- #判斷當前學生抽到的數字是否之前已經被抽到,傳入引數分別為存放數字的陣列和當前抽到的數字
- function num_exist(){
- for data in $1
- do
- if [ $data -eq $2 ]
- then
- return 1
- fi
- done
- }
- #開始迴圈等待輸入,迴圈限制為90,避免學生數超過100時,陷入死迴圈和超過90時,產生不重複數字時間較長
- while [ $i -le 90 ]
- do
- echo -n "please enter your name(enter exit to finish the program): "
- read -r name
- if [ $name == "exit" ]
- then
- break
- else
- echo -e "\n"
- let i++
- while true
- do
- num=$(( $RANDOM%100 ))
- num_exist "${number_array[*]}" $num
- if [ $? -eq 0 ]
- then
- echo "your name is $name and your number is $num "
- echo "$num $name" >> data.txt
- break
- else
- continue
- fi
- done
- number_array[i]=$num
- echo -e "\n"
- fi
- done
- #取前十名學生記錄輸出
- sort -nr data.txt |head -n 10
- rm -f data.txt
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30167136/viewspace-1757092/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux Shell程式設計(1)——shell程式設計簡介Linux程式設計
- linux shell 程式設計Linux程式設計
- Linux Shell程式設計(27)——子shellLinux程式設計
- Linux 程式設計之Shell程式設計(轉)Linux程式設計
- Linux之shell程式設計Linux程式設計
- Linux Shell程式設計(1)Linux程式設計
- Linux Shell程式設計(2)Linux程式設計
- Linux Shell程式設計(2)——第一個shell程式Linux程式設計
- Linux Shell程式設計(4)——shell特殊字元(上)Linux程式設計字元
- Linux Shell程式設計(5)——shell特殊字元(下)Linux程式設計字元
- linux下的SHELL程式設計Linux程式設計
- Linux Shell程式設計(28)——程式替換Linux程式設計
- Linux Shell程式設計(3)——執行shell指令碼Linux程式設計指令碼
- 前端學習 linux —— shell 程式設計前端Linux程式設計
- Linux Shell程式設計(15)——操作字串Linux程式設計字串
- Linux Shell程式設計(16)——迴圈Linux程式設計
- Linux Shell程式設計(29)——函式Linux程式設計函式
- Linux Shell程式設計(30)——別名Linux程式設計
- Linux Shell 程式設計實戰技巧Linux程式設計
- Linux的shell程式設計(一)(轉)Linux程式設計
- Linux的shell程式設計(二)(轉)Linux程式設計
- Linux的shell程式設計(三)(轉)Linux程式設計
- Linux的shell程式設計(四)(轉)Linux程式設計
- Linux入門---(三)Shell程式設計Linux程式設計
- 如何學習shell程式設計?Linux運維學習shell程式設計是什麼程式設計Linux運維
- shell程式設計程式設計
- 【學習】Linux Shell指令碼程式設計Linux指令碼程式設計
- Linux Shell程式設計(10)——引用變數Linux程式設計變數
- Linux Shell程式設計(12)——操作符Linux程式設計
- Linux Shell程式設計(13)——數字常量Linux程式設計
- Linux Shell程式設計(18)—— 迴圈控制Linux程式設計
- Linux Shell程式設計(20)——基本命令Linux程式設計
- Linux Shell程式設計(21)——複雜命令Linux程式設計
- Linux Shell程式設計(24)——命令替換Linux程式設計
- Linux Shell 程式設計學習筆記Linux程式設計筆記
- 玩轉Linux – shell 程式設計基礎Linux程式設計
- Shell程式設計 --- Shell介紹程式設計
- Linux Shell程式設計(26)——程式碼塊重定向Linux程式設計