【发布时间】:2023-04-03 18:26:01
【问题描述】:
我正在尝试制作一个 switch 语句以在 tcsh 中工作,但我不确定它为什么不工作。我在屏幕上显示一个菜单,如果选择了该选项,它会显示价格,然后返回顶部并重复,直到选择退出选项。
#!/bin/csh
clear
echo -n "Petes A Pizza "
echo -n " Menu "
echo -n " "
echo -n " Make a selection "
echo -n " "
echo -n " A. Speciality Pizza "
echo -n " B. Veggi Lovers Pizza "
echo -n " C. Meat Lovers Pizza "
echo -n " D. Hawaiian Pizza "
echo -n " E. Cheese Pizza "
echo -n " F. Exit "
set a = $<
switch ($a)
case [A] :
set A = ((7.99 + 0.07))
echo $A
sleep 5
goto top
case [B] : #they choose option 2
set B = ((8.99 * 0.07) + 8.99)
echo $B
sleep 5
goto top
case [C] : #they choose option 3
set C = ((6.99 * 0.07) + 6.99)
echo $C
sleep 5
goto top
case [D] : #they choose option 4
set D = ((8.49 * 0.07) + 8.49)
echo $D
sleep 5
goto top
case [E] : #they choose option 5
set E = ((3.99 * 0.07) + 3.99)
echo $E
sleep 5
case [F] :
exit 0
breaksw
endsw
end
【问题讨论】:
-
您为什么使用
case [A] :而不仅仅是case A :?为什么要使用echo -n,它将所有输出打印在一行上?你没有标签top。 -
谢谢,我已将其更改为案例 A。我无法进行计算,因为它最终会打印数字和其他信息,而不是计算结果。
-
csh使用内置的@命令执行算术运算,但仅限于整数。expr命令也只对整数起作用。
标签: linux switch-statement csh