2017-01-22 1 views
-1

올바른 결과가 출력되지 않습니다. 입력에 추가 비용을 곱하는 대신 입력 내용을 그대로 표시합니다. 사람들의 수에 선택에 따른 추가 비용을 곱해야합니다.올바른 곱셈 출력을 얻지 못하는 이유는 무엇입니까?

#!/bin/bash 

read -p "Number of Adult Tickets:(0 for none) " integer1  
read -p "Number of Junior Tickets:(0 for none) " integer2 

echo ""  
echo "$integer1 Adults"  
echo "$integer2 Juniors" 
echo "" 

num1=$50  
num2=$20  
num3=$5  

echo "Season Pass Add-On:"  
echo "1)Add Seasonal Parking"  
echo "2)Add Season Pass For Theme Park"  
echo "7)Just Buy Tickets For Today"  
echo "8)I wanna exit." 

echo "" 
read -p "What would the guest like to do? " guest 
echo ""  

case $guest in 
    1)  
     echo "Add Seasonal Parking"  
     echo ""  
     echo "Add an additional $num1 for every adult pass"  
     echo ""  
     echo "For Adult Tickets "$((integer1 + num1))""  
     echo "For Junior Tickets "$((integer2 + num1))""  
     ;;  
    2)  
     echo "Add Season Pass For Theme Park"  
     echo ""  
     echo "Add an additional $num2 for every adult pass"  
     echo "Add an additional $num3 for every junior pass"  
     echo ""  
     echo "For Junior Tickets "$((integer2 * num2))""  
     echo "For Adult Tickets "$((integer1 * num3))""  
     echo "For Junior Tickets "$((integer2 * num2))""  
     echo "For Adult Tickets "$((integer1 * num3))""  
     ;; 
    3)  
     echo "Just buy tickets for today"  
     exit 0  
     ;;  
    4)  
     echo "invalid entry. You are exiting"  
     exit 1  
     ;; 
esac  

exit 0 

답변

2

문제는 일반 숫자로 작동하지 않도록 달러 기호는 배쉬에서 특별한 의미를 가지고

num1=$50 
num2=$20 
num3=$5 

에 달러 기호입니다. 통화없이이 상수를 저장하고 나중에 그 결과에 추가하십시오.

에코를 표시하려면 달러 기호를 백 슬래시로 이스케이프 처리해야합니다.

echo "For Adult Tickets \$$((integer1 + num1))" 
+0

고맙습니다. – pinook