【发布时间】:2021-08-28 19:56:58
【问题描述】:
如何使用带变量的 case 语句?
我正在编写一个记录简单信息并将其保存到 csv 文件中的 bash 脚本。 整个脚本是这样的:您可以选择(使用 case 语句)并将其记录到文件中。在我所在的位置,有一个提示询问用户数量。在日志中,它将是减号或加号。因此,如果我在日志中取出某物,它需要说减去一项 (-1),如果我带回某物,它应该是 +1 或 +2 或任何数量。
最后,我想使用一个带有按钮 0-9 和 # 和 * 的密码键盘。 我想将 * 按钮用作选项按钮,将按钮 # 用作加号(我知道我不应该,但显然如果您将它们注释掉,它似乎工作)。
例如,如果用户按下 *,那么用户需要按下一个数字,该数字将是项目的数量。但是如果用户按错了按钮,我希望脚本忽略它并再次显示 * 和 # 的选项。
最后,就像我提到的那样,我需要将它全部作为一个变量,以便我可以回显到该日志。
我开始写它,因为有人帮助我做了类似的事情,但我尝试的事情没有成功。
这只是我想去的地方的想法:
#! /bin/bash
minus="-"
plus="+"
echo "Press * for minus"
echo "Press # for plus"
echo "And then enter the quantity"
read -r choice
#And then comes case I guess.
【问题讨论】:
-
请用
things I tried didn't work out更新问题,否则看起来您希望我们为您编写整套代码;还...用户可以输入多位数答案(例如23)还是仅限于一次输入一个数字?read要求用户点击<return_or_enter>来告诉read当数据输入完成时,用户是否必须点击<return_or_enter>或者您是否希望read将每个按键作为单独的按键处理条目(例如,read -n1)? -
一点也不。我只是跳过了那个,因为我对我的代码不起作用感到尴尬:
-
``` 把它想象成一个对仓库来说很重要的日志。所以是的,如果有人拿了 67 个项目,日志需要有这个 -67 个项目回显给它。退货或进出价已经整理好。就像脚本的最后一行将看起来像... 输出字符。我会回来的。
-
所以还有其他 $(thing) 之类的变量,它们在脚本的早期工作。但最后,我认为脚本将以这样的行结束: echo $var1thatworked $var2thatworkier $userNumber $thingsI'mstrugglingWith >> mylog.csv
标签: bash loops raspberry-pi case