Skip to content

Instantly share code, notes, and snippets.

@holys
Forked from anonymous/exam.txt
Last active December 11, 2015 00:29
Show Gist options
  • Select an option

  • Save holys/4516703 to your computer and use it in GitHub Desktop.

Select an option

Save holys/4516703 to your computer and use it in GitHub Desktop.
#!/bin/bash
main() {
clear
while true
do
cat <<- MENU
1) select
2) command
3) script
4) makefile
0) quit
MENU
read -p "please input your selection:" section
echo
case "$section" in
1) selection;;
2) command ;;
3) script ;;
4) makefile ;;
0) exit 0 ;;
*) echo "input error!" ;;
esac
done
}
selection() {
paper="p1"
grep "^#" $paper
if [ ! -f 1.ans ]
then
gen_ans 1 20
fi
curr=1;
while true
do
echo
sed -n "/^$curr\./,/^$/p" $paper
youranswer=`grep "^"$curr"\." 1.ans | cut -f2 -d" "`
read -p "input your answer($youranswer): " answer
case $answer in
0)
main
;;
[1-9]|[1-2][0-9])
if [ $curr -ge 1 -a $curr -le 20 ]; then
curr="$answer"
fi
;;
[a-d]|[A-D])
answer=`echo $answer | tr "[a-z]" "[A-Z]"`
sed -i "s/^$curr\. .*/$curr\. $answer/" 1.ans
if [ $curr -lt 20 ]; then
curr=`expr $curr + 1`
fi
;;
-)
if [ $curr -gt 1 ]; then
curr=`expr $curr - 1`
fi
;;
"")
if [ $curr -lt 20 ]; then
curr=`expr $curr + 1`
fi
;;
*)
echo "input the correct problem number or answer!"
;;
esac
done
}
command() {
paper="p2"
grep "^#" $paper
curr=1;
while true
do
echo
sed -n "/^$curr\./,/^$/p" $paper
echo -n "ANS: "
if [ -f "$curr.cmd" ]
then
cat $curr.cmd 2> /dev/null
else
echo
fi
echo
read -rp "input your answer: " answer
case $answer in
0)
main
;;
[1-9]|1[0-5])
curr="$answer"
;;
-)
if [ $curr -gt 1 ]; then
curr=`expr $curr - 1`
fi
;;
"")
if [ $curr -lt 20 ]; then
curr=`expr $curr + 1`
fi
;;
*)
echo "$answer" > $curr.cmd
if [ $curr -lt 15 ]; then
curr=`expr $curr + 1`
fi
;;
esac
done
}
script() {
paper="p3"
grep "^#" $paper
curr=1;
while true
do
echo
sed -n "/^$curr\./,/^$/p" $paper
read -p "input your selection(e to edit the file): " answer
case $answer in
0)
main
;;
[1-2])
curr="$answer"
;;
-)
if [ $curr -gt 1 ]; then
curr=`expr $curr - 1`
fi
;;
e)
vi $curr.sh
;;
"")
if [ $curr -lt 2 ]; then
curr=`expr $curr + 1`
fi
;;
*)
echo "input the correct number"
;;
esac
done
}
makefile() {
paper="p4"
cat $paper
read -p "press 0 to quit or any other key to start edit the makefile...: " choice
if [ $choice = "0" ]; then
main
else
vi makefile
main
fi
}
gen_ans() {
> $1.ans
cur=1
while [ $cur -le $2 ]
do
echo "$cur. " >> $1.ans
cur=`expr $cur + 1`
done
}
main
@holys
Copy link
Copy Markdown
Author

holys commented Jan 14, 2013

看不出来是哪来的题目

@holys
Copy link
Copy Markdown
Author

holys commented Jan 14, 2013

原来是p1,p2, p3, p4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment