Linux Shell-Script code is not executing? -


this code not running shows error:- whl_case_lop1: 25: whl_case_lop1: syntax error: "elif" unexpected (expecting ";;")

#if [ -z $1 ] #then #rental=****unknown item**** #elif [ -n $1 ] #then  #rental=$1 #else [ -n $2 ] #then #rent=$2 #fi echo "1. vehicle_on_rent" echo "2. living_house" echo -n "choose option [1 or 2]? " read cate;  if [ $cate -eq 1 ];  echo "enter vehicle type" read rental  case $rental in  "car") echo "for $rental in 20/km";; "van") echo "for $rental in 15/km";; "jeep") echo "for $rental in 10/km";; "bike") echo "for $rental in 5/km";; *) echo "we can't find $rental vehicle" elif  [ $cate -eq 2 ];   echo "enter room requirement" read rent case $rent in "1bhk") echo "for $rent 10k";; "2bhk") echo "for $rent 15k";; "3bhk") echo "for $rent 20k";; *) echo "we can't find $rent requirement" else echo "please check requirements! maybe choose wrong option" fi 

you need ;; in case's *) branch, , case statement ends esac keyword: https://www.gnu.org/software/bash/manual/bashref.html#conditional-constructs

you might want use select statement, restrict user's responses:

ps3="enter vehicle type: " select rental in car van jeep bike;     case $rental in          car)  echo "for $rental in 20/km"; break ;;         van)  echo "for $rental in 15/km"; break ;;         jeep) echo "for $rental in 10/km"; break ;;         bike) echo "for $rental in 5/km";  break ;;         *)    echo "we can't find $rental vehicle" ;;     esac done 

indent code aid maintainability.


Comments