我需要能够分配一个号码给一个模块,我目前的代码如下。差距是它需要被分配。
assignmodules(){
#Assign first module
x=1
modules=$(ls ./modules)
for module in modules; do
echo "$module assigned to slot $x"
x=$(x+1)
done
}
几件事:模块标题必须在不同的函数中打印,所以我不能在for循环中打印它。模块需要这样运行:
case $choice in
1) module1
2) module2
3) module3
etc.
需要打印如下(如果我发现一个很好的解决方案,不这样做的权利,我可能仍然使用。):
[1] Module1 [2] Module2
[3] Module3 [4] Module4
etc.
我在空白处试过这个:[{x}] module = $module(我不认为这正是我所尝试的,我相信它略有不同,但我不记得了)我希望它像上面描述的那样,但我不认为它会。
2条答案
按热度按时间xmjla07d1#
如果使用Bash,只需使用一个数组、一些全局匹配和特殊的参数扩展。
您可以使用打印模块列表的位置
或者
还建议在脚本的开头添加
shopt -s nullglob
,尤其是模块目录有时可能为空时。最后,如果你想让用户选择,看
select
命令。你可能不需要手动显示它们。运行help select
。wswtfjt72#
只需将模块放入数组中:数字索引数组(默认类型)的索引是自然编号的(注意,这些数字从0开始,而不是从1开始)。