9阅网

您现在的位置是:首页 > 知识 > 正文

知识

linux - 用BashScript制作一个酒店管理系统

admin2022-10-06知识34

我无法纠正这个错误。我试着在Google上搜索,但我不知道我的输出是指什么。它给出了一个行号,但代码就在那里。脚本文件中的IF语句末尾使用 "fi",这是我的代码。

#!/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 '\n\n\n'
printf 'Hotel Management System'

# Calling Options Display Function
set_menu_choice

if [[ $menu_choice == 1 ]]; then
roombooking
else
echo "Display Data"
fi

echo "finshed"

我也附上输出运行bashscript文件时出错

EDIT: 在添加了 ; then 在过去 elif 语句,我得到以下错误。

**Syntax Error Expected near Unexpected Token '}'**


【回答】:

首先,你缺少了一个 ; then 这里。

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
}

第二,你会得到一个 syntax error near unexpected token '}' 因为你没有关闭每一个语句。只需添加一个最后的 fi 在当前的最后一个(在 roombooking 功能也)。)

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
}