I am unable to correct the error. I have tried searching on Google but i can’t figure out what my output is referring to. Its giving a line number but the code is right there. “fi” is used at the end of IF statements in scriptfiles. This is my code
#!/bin/bash
#Declaring all fucntions
#Menu Display Function
set_menu_choice(){
clear
echo "---------------------------------------------"
echo "HOTEL RESERVATION"
echo "-------------------------------------------"
echo "1: BOOK A ROOM."
echo "2: TO VIEW YOUR DATA."
echo 'Please enter the choice: '
read menu_choice
}
#FOR HOTEL SELECTION
roombooking(){
#rtype=ROOM TYPE, hnum=HOTEL NUMBER, pr=PRICE RANGE, sty=DAYS OF STAY.
$i, $j, $x, $rtype, $price, $sty, $bill;
$r;
#
clear
echo "ENTER YOUR PRIZE RANGE MINIMUM(4000): "
read price
#
#Price Check
echo "HOTELS AVAILABLE"
if [[ $price -lt 4000 ]]; then
echo "SORRY NO HOTEL AVAILABLE IN THIS RANGE"
echo "ENTER YOUR PRIZE RANGE AGAIN MINIMUM(4000): "
read price
else if [[ ( $price -gt 4000 && $price -lt 5000 ) ]]; then
echo "HOTEL RAMADA"
#
elif [[ ( $price -gt 5000 && $price -lt 7000 ) ]]; then
echo "1=>HOTEL RAMADA."
echo "2=>TAJ MAHAL."
#
elif [[ ( $price -gt 7000 && $price -lt 9000 ) ]]; then
echo "1=>HOTEL RAMADA."
echo "2=>TAJ MAHAL."
echo "3=>HOTEL MEHRAN."
#
elif [[ ( $price -gt 9000 && $price -lt 10000 ) ]]; then
echo "1=>HOTEL RAMADA."
echo "2=>TAJ MAHAL."
echo "3=>HOTEL MEHRAN."
echo "4=>MOVE AND PICK."
#
elif [[ $price -gt 10000 ]]
echo "1=>PEARL CONTINENTAL."
echo "2=>MOVE AND PICK."
echo "3=>HOTEL MEHRAN."
echo "4=>TAJ MAHAL."
echo "5=>HOTEL RAMADA."
fi
}
# Main Work
printf 'nnn'
printf 'Hotel Management System'
# Calling Options Display Function
set_menu_choice
if [[ $menu_choice == 1 ]]; then
roombooking
else
echo "Display Data"
fi
echo "finshed"
I am attaching the output too Error while running the bashscript file
EDIT: After adding ; then in the last elif statement, I am getting the following error:
**Syntax Error Expected near Unexpected Token '}'**
Advertisement
Answer
First, you’re missing a ; then here:
elif [[ $price -gt 10000 ]] echo "1=>PEARL CONTINENTAL." echo "2=>MOVE AND PICK." echo "3=>HOTEL MEHRAN." echo "4=>TAJ MAHAL." echo "5=>HOTEL RAMADA." fi }
Second, you’re getting a syntax error near unexpected token '}' because you did not close every statement. Just add a last fi after the current final one (inside the roombooking function also):
elif [[ $price -gt 10000 ]]; then echo "1=>PEARL CONTINENTAL." echo "2=>MOVE AND PICK." echo "3=>HOTEL MEHRAN." echo "4=>TAJ MAHAL." echo "5=>HOTEL RAMADA." fi fi }