Hello everyone. I am new to shell scripting and i am required to create a shell script, the purpose of which i will explain below.
I am on a solaris server btw.
Before delving into the requirements, i will give youse an overview of what is currently in place and its purpose.
#!/usr/bin/bash
./xmlprocshell.sh file1_import.xml # This script accepts an XML file as an argument and performs different tasks and writes the result to an answerfile
./xmlparse.sh file1_import_answer.xml # This script parses the xml answer file and prints the results and ERRORS if any.
a=`printf 'cat //Guiroot/Errors/Errorcount/text()'| xmllint --shell file1_import_answer.xml | sed -n 2p` #extract the errorcount from the answer file
echo "THERE ARE $a ERRORS IN EXECUTION"
if [ $a -gt 0 ] ; then
exit
else
echo "execution successful"
fi
./xmlprocshell.sh file2_import.xml
./xmlparse.sh file2_import_answer.xml
b=`printf 'cat //Guiroot/Errors/Errorcount/text()'| xmllint --shell file2_import_answer.xml | sed -n 2p`
echo "THERE ARE $b ERRORS IN EXECUTION"
if [ $b -gt 0 ] ; then
exit
else
echo "execution successful"
fi
.
.
#And so on
There are over 50 of these xml files that needs to be executed by the shell. If there are errors in execution of an xml file, the shell script should exit and the error will need to be fixed.
The tricky part is: once the error is fixed, the script should present the user with an option to resume the execution from the xml file that failed or execute all the files from the beginning.
How do i go about designing a script that will do the following:
- Present the user with a list of 50 files to run.
- Any option that the user chooses should pass the file as an argument to the xmlprocshell.sh which do do the deed.
- If the execution is successful the next file in the order is executed automatically and so on.
Do i put the above inside a function and pass the files as arguments or do i go with loops. If anyone can provide me with an example template, i'd be extremely grateful. Thanks in advance