用指令碼模擬抽籤

2021-10-04 02:13:18 字數 1443 閱讀 8353

1、寫乙個指令碼執行後,輸入名字,產生隨機數01-99之間的數字。

2、如果相同的名字重複輸入,抓到的數字還是第一次抓取的結果,

3、前面已經抓到的數字,下次不能在出現相同數字。

4、第乙個輸入名字後,螢幕輸出資訊,並將名字和數字記錄到檔案裡,程式不能退出

繼續等待別的學生輸入。

理性分析:乙個隨機數對應乙個名字,乙個名字可以對應多個數字,但數字不能重複出現。唉,,好像不能這麼理解,換成乙個隨機數對應乙個名字,乙個名字可以只能對應乙個數字,且數字不能重複出現

#!/bin/bash

while:do

read -p "請輸入名字:" name

if[ -f /tmp/test.log ]

;then

name1=

`cat /tmp/test.log |

awk -f: ''

|grep

"$name"

` if

["$name1"

!="$name"];

then

#名字不重複情況下

radomnum=

`echo $random |

awk -f ""''`

while:do

num=

`cat /work/test/1.log |

awk -f: ''

|grep

"$aa"

` if

["$radomnum"

=="$num"];

then

#數字已經存在情況下

echo

"該數字已存在!!!"

radomnum=

`echo $random |

awk -f ""''`

else

break

fidone

echo

"$name:$radomnum"

|tee -a /tmp/test.log

else

oldname=

`cat /tmp/test.log |

grep

"$name"

|awk -f: ''

` #名字重複

echo

"重複名字: "

$oldname

fielse

a=`echo $random |

awk -f ""''`

echo

"$name:$a"

|tee -a /tmp/test.log

fidone

測試

檢視test.log

linux用shell指令碼模擬時鐘 指令碼錄製

bin bash this is a clock,it will display time once a second,in the same position file name clock.sh tput sc while true do echo n date sleep 1 tput rc ...

用堆疊模擬佇列,和用佇列模擬堆疊

最近在看 演算法導論 第十章裡面有一題是用了 兩個堆疊模擬乙個佇列,我設計的演算法如下 堆疊a和b,a用作入隊,b出隊 1 判隊滿 如果a滿且b不為空,則隊滿 2 判隊空 如果a和b都為空,則隊空 3 入隊 首先判隊滿。若隊不滿 1 棧a若不滿,則直接壓入棧a 2 若a滿,則將a中的所有元素彈出到棧...

2018俄羅斯世界盃 模擬抽籤結果 (PHP版)

完善思路 在給朋友看了結果之後,朋友說有幾點需要注意,東道主一定在a組,還有為了體現東道主的的優勢,其同組對手都要相對較弱 另外,歐洲區國家外同組迴避,歐洲區最多兩支同組的迴避規則。所以結合一下需求,需要重新完善下程式哦,還是略複雜的是嗎?哪位來試試。歐洲區 1 俄羅斯 比利時 法國 葡萄牙 德國 ...