Is there a way to write a more elegant code which considers multiple possible combinations than writing a lengthy if-else statement?
I have randomly generated data sets like the ones below but some of the rows can be null sometimes.
{
semester1 grade1 final_grade1
semester1a grade1a final_grade1a
}{
semester2 grade2 final_grade2
semester2a grade2a final_grade2a
}
I have already written code for all the possible logical combinations of my data:
if [[ -n $semester1 && -z $semester1a && -z $semester2 && -z $semester2a ]]; then
echo "Section 1:$semester1=$grade1, final grade for $semester1=$final_grade1 ."
elif [[ -n $semester1 && -n $semester1a && -z $semester2 && -z $semester2a ]]; then
echo "Section 1:$semester1=$grade1, $semester1a=$grade1a, final grade for $semester1=$final_grade1, final grade for $semester1a=$final_grade1a."
elif [[ -n $semester1 && -n $semester1a && -n $semester2 && -z $semester2a ]]; then
echo "Section 1:$semester1=$grade1, $semester1a=$grade1a, final grade for $semester1=$final_grade1, final grade for $semester1a=$final_grade1a."
echo "Section 2:$semester2=$grade2, final grade for $semester2=$final_grade2 ."
elif [[ -n $semester2 && -z $semester2a && -z $semester1 && -z $semester1a ]]; then
echo "Section 2:$semester2=$grade2, final grade for $semester2=$final_grade2 ."
elif [[ -n $semester2 && -n $semester2a && -z $semester1 && -z $semester1a ]]; then
echo "Section 2:$semester2=$grade2, $semester2a=$grade2a, final grade for $semester2=$final_grade2, final grade for $semester2a=$final_grade2a, ."
elif [[ -n $semester2 && -n $semester2a && -n $semester1 && -z $semester1a ]]; then
echo "Section 1:$semester1=$grade1, final grade for $semester1=$final_grade1 ."
echo "Section 2:$semester2=$grade2, $semester2a=$grade2a, final grade for $semester2=$final_grade2, final grade for $semester2a=$final_grade2a, ."
elif [[ -n $semester2 && -n $semester2a && -n $semester1 && -n $semester1a ]]; then
echo "Section 1:$semester1=$grade1, $semester1a=$grade1a, final grade for $semester1=$final_grade1, final grade for $semester1a=$final_grade1a, ."
echo "Section 2:$semester2=$grade2, $semester2a=$grade2a, final grade for $semester2=$final_grade2, final grade for $semester2a=$final_grade2a, ."
fi
Is there a better way for checking this?
Aucun commentaire:
Enregistrer un commentaire