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
Post a Comment