老师布置的一个题目(不完全是),已经将学生名字改为字母。应用标志位数组一轮点名确保不会重复。
#!/bin/bashPATH=/bin:/sbin:/usr/bin:/usr/sbindeclare -a Studentsdeclare -a Asked #标志位数组Students=("A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S" "T" "U")#echo ${#Students[*]}for (( i=0;i<=20; ))doindex=$(($RANDOM%21))[[ ${Asked[$index]} == 1 ]] && continueecho "Students: ${Students[$index]}"read -p "Enter to continue"Asked[$index]=1 #在数组中标识在Students 数组中相应位置的学生已经被点过echo "Asked[$index]=${Asked[$index]}"i=$(($i+1))done#echo "Asked = ( ${Asked[@]})"