为什么我没有得到正确的乘法输出?
问题描述:
我没有得到正确的输出结果。它不是将输入与附加成本相乘,而是按照原来的方式显示输入。我需要将人数乘以他们可能基于选择的额外费用。为什么我没有得到正确的乘法输出?
#!/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
答
的问题是
num1=$50
num2=$20
num3=$5
的美元符号的美元符号在Bash的特殊的意义,所以它不会作为一个普通数字工作。将这些常量存储为不带币种,然后将其添加到结果中。
美元符号需要用反斜杠转义才能用echo显示。
echo "For Adult Tickets \$$((integer1 + num1))"
非常感谢! – pinook