Honestly i am very grateful for your reply and its really getting clearer but i need some help with
this 'sed' statement. I was thinking that putting the questions in a separate 'questions' file and also redirecting the answers to a separate file 'answers' will make the script more robust and secure. Then i can call various lines of the questions individually. eg if i have this question in a separate file
3. What is the capital of the United States of America?
a) Florida
b) Chicago
c) Washington D.C
d) none of these
Enter answer
i can say "sed -n '1,5' ~/home/testing/questions
read answer
$answer > /home/testing/answers
to call the question. Another issue will be how i will compare this supplied answers
with the file 'right answers' containing the right answers and then display to the student
from the 'display' script file because the student should be able to access this display script
like say one week later to see his result again. Please can you help me with this?
Thanks Chubler XL. You don't know how grateful i am. I am actually new to unix and i want to become a professional like you (in Unix administration) so i can excel in DBA role which i just passes the exams recently. I will try it out now cos i just saw the mail. Thanks so much again for being there for me.
---------- Post updated at 08:22 PM ---------- Previous update was at 11:16 AM ----------
Chubler_XL,
Wow you are really too much, as in, the best! I have spent the whole day on this
script and it works perfectly well! I have some work to now study each line and know
their meaning cos i have no met most of the commands like "eval", "tput", "post", "pre"
and so many others. I have succeeded in wrapping the script into my for-else loop, to make it accessible only to the right students. But please one more thing.
Please can you help me with a separate 'result' script. The result script is supposed to display the answers the student entered from 'answers' file in numeric order and compare with the the ones in the 'correct' file and compute the student's result e.g if i have eight questions and eight correct answers in the 'correct' file. The student logs in with user name and password the results are shown thus:
$ cat result
Your answers
1.) a
2.) b
3) d
4.) c
5.) a
6.) c
7.) c
8.) b
You got 5 correct out of 8
You Passed!
(or you failed if the correct ones he entered is less than half of the of the total number
of correct ones in the 'correct' file.
Typically I don't use for loops like the above as they only work in the bash shell, but the code to populate arrays from a file (lines 2 and 3) only work in bash anyway, so "in for a penny in for a pound".
Oh, and for your password prompting have a look "stty -echo" and "stty echo"
Last edited by Chubler_XL; 11-03-2010 at 07:45 PM..
This User Gave Thanks to Chubler_XL For This Post:
Wow thanks so much. You are closer than a brother. Many thanks again. I will continue to study them and try out others until i become very good and 'perfect'.
I saw links to java on this our website. Do you know Java also? I need some help with classes. i.e writing good and professional classes with java doc. Please let me know. But once again, i am soo grateful.
Good morning Chubler XL, hope you are alright. I have been improving my knowledge in Unix since i joined. Please i have a question regarding this script:
it is working perfectly but there is no way to tell the user that he has reached
the last question. I have been trying for days to put some extra line of
code to prompt the user that he has reached the last and for him to enter
'q' to quit. I tried codes like:
Then i put the max_question function before the after the clear command.
I also tried making this modification to the ask command which nearly worked
except that i had 8 questions and it display 7 before bringing out
the message "end of questions. enter q to quit". Here is the change i made
I tried and tried other inequality symbols and many other things to make it
show the 8th (last) question before bringing out the message but this
was the closest i could get.
Please Chubler XL what am i missing out? How can it be made to bring
out questions 1-8, and at the 8th question prompt the user that he has reach
-ed the end.
Thanks so much.
Moderator's Comments:
Please use code tags
Last edited by Franklin52; 12-14-2010 at 06:50 AM..
In ask you want to display question 8 of 8, then read their answer and then show your new message so the updated ask function would be:
Down side of this is they don't get to go back and review/change an answer before finishing.
The version below allows them to supply the required number of answers and then asks "All done, type question (1-n) to review your answer or Q to quit:"
Last edited by Chubler_XL; 12-14-2010 at 09:28 AM..
This User Gave Thanks to Chubler_XL For This Post:
Hi all,
I thought this would be simple, but I've been having a lot of trouble trying to write this IF statement, if I may ask for help pls:
In BASH, how would I construct the if statement:
Should ONLY be true if USEROPTscript=="yes"]] AND $mode=="INSTALL" /or/ $mode=="CHANGE" ]]... (3 Replies)
Hi,
I don't understand && and || in this context. I thought && is for logical 'AND' and || is for logical 'OR'.
&& echo "Not empty" || echo "Empty"
Please help
Thank You (5 Replies)
Hi everybody!!
Here is the thing; I have a trouble in this simple situation, I'm trying to write an array with all the arguments of a command. I mean, if I have:
./mycommand.sh aa bb cc dd
I need to take an array like this:
myarray=(aa bb cc dd)
So I use a simple for loop like this:
for... (4 Replies)
Hi,
I need to construct the below path from the two available directory path,
O/P
/home/data/test/run/ht/WEB/HTML
/home/data/test/run/ht/WEB/JSP
/home/data/test/run/ht/WEB/CSS
Path:1
------
/home/data/test/run/
Path:2
------
/home/data/share/app/01/lang/ht/WEB/HTML... (5 Replies)
Please help me out: I've seen this construct
awk '{...}1'several times, like in scrutinizer's today's post
awk '{for(i=2;i<=NF;i++)if($i==$1)$i=RS $i}1' infilebut I can't find (manuals, man pages, internet FAQs,...) an explanation of what it does resp. stands for. Any hint is appreciated! (5 Replies)
I'd like to create a variable with the value of X number of space( no Perl please), printf seems to work, but , in following example,10 spaces becomes 1 space when assinged to a variable, Why? other solutions are welcome.
$printf "=%10s=\n"
= =
$var=$(printf "=%10s=\n")
echo... (4 Replies)
Hi all,
Sorry to ask this easy question but I am stuck. In a scenario i am executing one shell script which contains a if - else construct :
if ; then
echo $line
$line >> successful_build.txt
else
$line >> failed_services.txt
fi
explaination : if the... (5 Replies)
Hi Guys,
could someone tell me what this ksh construct does
typeset -r PROG_PWD=${0%/*} does
I understand the -r for readonly but I would very much appreciate a definitive account of what this will set $PROG_PWD to.
If I run this at the cmd line it it gets set to /usr/bin but I would... (2 Replies)
Hi all
I have tried to search for this, but keep getting a MySQL db connect error, so am posing the question here, and taking a risk of incurring the wrath of the mods with my first post...
I have the following test script:
#!/bin/bash
HTTPD=`/bin/ps -axcu | /usr/bin/grep httpd... (6 Replies)