мое состояние всегда не выполняется и заставляет его переходить к операторам else.
Пример: Джейм, Смит, 12,100009,2 Джек, Смит-Поттер, 9,19998,5, Хайме-Джейн, Смит, 8,92384,3имя, если это дефис и наиболее правильно, если две фамилии.затем класс, ID и 2-5 должны быть заменены школой.Например, 2 должны измениться на HS, 3 - на среднюю школу и так далее.Его начало от 2 до 5 и его сохранение в школе при передаче файла.
#!bin/bash
OLDIFS=$IFS
IFS=","
while read First_Name Last_Name Grade Student_Id school
do
#Keeps the first name before "-"
FIRSTNAME=$(echo $First_Name | cut -d'-' -f 1)
#Keeps most left name
NAME=$(echo $FIRSTNAME | cut -d" " -f 1)
#Find the spaces between last name and if there are more than one space
it makes it into one space.
LASTNAME=$(echo $Last_Name | sed -e 's/ */ /g')
other=$(echo $LASTNAME | cut -d' ' -f 2)
last_Name=$(echo $other | cut -d'-' -f 2)
if [ $school == 2 ]
then
School=$(echo $school | sed -e 's/2/HS/g')
echo "$NAME"."$last_Name" "$NAME" "$last_Name" "$Grade"thGrade
"$Student_Id" "$School"
elif [ $school == 3 ]
then
School=$(echo $school | sed -e 's/3/MI/g')
echo "$NAME"."$last_Name" "$NAME" "$last_Name" Class"..."
"$Student_Id" "$School"
elif [ $school == 4 ]
then
School=$(echo $school | sed -e 's/4/MO/g')
echo "$NAME"."$last_Name" "$NAME" "$last_Name" Class"..."
"$Student_Id" "$School"
else
School=$(echo $school | sed -e 's/5/K/g')
echo "$NAME"."$last_Name" "$NAME" "$last_Name" Class"..."
"$Student_Id" "$School"
fi
done < $1
IFS=$OLDIFS
Условие не выполняется и оно переходит к оператору else.