2017-01-22 124 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 

的美元符号的美元符号在Bash的特殊的意义,所以它不会作为一个普通数字工作。将这些常量存储为不带币种,然后将其添加到结果中。

美元符号需要用反斜杠转义才能用echo显示。

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

非常感谢! – pinook

相关问题