제 비 뽑 기 게임, 제 비 뽑 기 1 ~ 99, 숫자 큰 사람 을 잡 으 면 승리, 출력 3 위
재 미 있 는 기업 셸 실전 프로 그래 밍 문제: 좋 은 소식, 늙 은 남자 아이 가 학생 들 에 게 기업 프로젝트 실천 기회 (6 차) 가 왔 다 (이 달 중순). 그러나 정원 이 제한 되 어 있 고 대원 은 3 명 (반장 인솔자) 으로 제한 된다.따라서 학생 을 뽑 아야 하기 때문에 제 비 뽑 기 프로그램 이 필요 합 니 다. 요구: 1. 스 크 립 트 를 실행 한 후에 가 고 싶 은 학생 은 영어 이름 을 모두 입력 하고 난수 01 - 99 사이 의 숫자 를 만 듭 니 다. 숫자 가 클 수록 프로젝트 실천 에 참가 합 니 다. 앞에서 잡 은 숫자 는 다음 에 같은 숫자 가 나 오 면 안 됩 니 다.2. 첫 번 째 로 이름 을 입력 한 후에 화면 에 정 보 를 출력 하고 이름과 숫자 를 파일 에 기록 합 니 다. 프로그램 은 다른 학생 의 입력 을 계속 기다 리 는 것 을 종료 할 수 없습니다.
#!/bin/bash
read -p "Please enter your name:" -t 10 name
if [ $? -ne 0 ]
then
echo -e "
!!!!!!Enter is timeout!!!!!!"
exit 1
fi
touch temp result
cat /dev/null > result
cat /dev/null > temp
while true
do
if [ $(grep ^$name result|wc -l) -ge 1 ]
then
echo "This name is exist"
fi
if [ "$name" == "exit" ]
then
rm temp -f
echo "******************************"
echo "The result of the top three:"
sort -k3rn result|head -3
echo "******************************"
exit 1
fi
if [ -z $name ]
then
echo "Your name is null."
read -p "Please enter your name:"
fi
number=$(($RANDOM%99+1))
if [ $(grep "^$number$" temp | wc -l) -eq 0 ] && [ $(grep ^$name result|wc -l) -eq 0 ];then
echo "$name is $number" >> result
echo "$name is $number"
echo $number >> temp
if [ $(cat temp|wc -l) -ge 99 ];then
echo -e "The number out of range.
exit!!!"
rm temp -f
echo "******************************"
echo "The result of the top three:"
sort -k3rn result|head -3
echo "******************************"
exit 1
fi
fi
echo "Enter 'exit' end the process!"
read -p "Please enter your name:" -t 10 name
if [ $? -ne 0 ]
then
echo -e "
!!!!!!Enter is timeout!!!!!!!"
echo "******************************"
echo "The result of the top three:"
sort -k3rn result|head -3
echo "******************************"
exit 1
fi
sleep 0.1
done