BASH 数组索引减去最后一个数组

2024-01-09

这是一个困扰我的问题 - 我需要从用户输入中读取版本号,并且我想使用存储版本号的数组的长度创建一个“菜单”。然而,BASH 的神秘语法在这里对我没有帮助:

echo $VERSIONS
2.0.10-1 2.0.7-1 2.0.7-1 2.0.7-1 2.0.10-1

for v in ${!VERSIONS[*]}
do
  echo "$(($v+1))) ${VERSIONS[$v]}  "
done

output

1) 2.0.10-1
   2.0.7-1
   2.0.7-1
   2.0.7-1
   2.0.10-1  
2) 2.0.7-1  
3) 2.0.7-1  
4) 2.0.7-1  
5) 2.0.10-1   

另一个命令

for v in ${!VERSIONS[*]}
do
  echo "$(($v+1))) ${VERSIONS[$v+1]}  "
done

1) 2.0.7-1  
2) 2.0.7-1  
3) 2.0.7-1  
4) 2.0.10-1  
5)   

我真正想要的是这样的输出:

1) 2.0.7-1  
2) 2.0.7-1  
3) 2.0.7-1  
4) 2.0.10-1 

没有最后 5)....

很乐意解开如何在 bash 中做到这一点......

附:我的一位同事刚刚提供了一种没有数组的方法。我发布它只是为了好玩:

i=1
for v in $VERSIONS
do
  echo "$i) $v" ; i=$(($i+1))
done

output

1) 2.0.10-1
2) 2.0.7-1
3) 2.0.7-1
4) 2.0.7-1
5) 2.0.10-1

好的,由于解决方案在我的脚本中不起作用,我将发布更多信息:

for package in $NEWPACKAGES 
do  
    apt-show-versions -a -p $package
    VERSIONS=$(apt-show-versions -a -p $package | cut -d ":" -f 2 | cut -d " " -f 1)
    echo $VERSIONS
    echo "type the number for version you want to install: (type enter to skip)"

    for i in `seq 1 ${#VERSIONS[@]}`; do 
    echo "$i) ${VERSIONS[$(($i-1))]}"; 
done

    echo $VERSIONS    
    read version
    echo "your choice $version"
    # now the problem is that i can't get this part to work !
    apt-get install $package="${#VERSIONS[$version]}"
done

带有数组的版本(如果您仍然需要的话)。

for i in `seq 1 ${#VERSIONS[@]}`; do 
    echo "$i) ${VERSIONS[$(($i-1))]}"; 
done
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

BASH 数组索引减去最后一个数组 的相关文章

  • 为什么 char 数组需要 strcpy 而 char star 不需要 - 在 C 中使用结构

    我对这段代码有一个误解 typedef struct EXP int x char name char lastName 40 XMP main XMP a a name eaaa a lastName strcpy a lastName
  • 在 Node.js 中创建 JSON 数组

    我需要在用 Node js 编写的服务器中创建一个 JSON 字符串 以便在请求时发送到客户端 问题是这个 JSON 取决于服务器中的可用数据 因此 JSON 数组的大小并不总是相同 我已经尝试了一整天 但尽管我感觉很接近 但我仍然不明白
  • grep 彩色线条

    我编写了一个简单的 PHP shell 脚本 它解析文件并输出某些元素 它产生大量的输出 采用不同的 bash 颜色 绿色表示正常 黄色表示警告 红色表示错误等 在开发过程中我想过滤掉一些行 例如 所有包含红色文本的行 我可以使用grep
  • 为关联数组选择哪种映射类型?学说ODM

    我有一个关于 顺便说一句 真的很棒 Doctrine ODM 的简单问题 假设您有一个类似以下的文档 Document class Test Id public id WHICHTYPE public field array 现在我想存储一
  • Xcode 方案预操作脚本未运行

    点击构建 构建日志中不会打印任何内容 是什么赋予了 Xcode 版本 8 2 1 8C1002 预操作发生在构建之前 因此输出不会进入构建日志 而是进入 stdErr 您可以将输出复制到文件中 exec gt PROJECT DIR pre
  • 如何在 JavaScript 中构建一个计算数组中出现次数的对象?

    我想计算数组中某个数字出现的频率 例如 在Python中我可以使用Collections Counter创建一个字典 记录某个项目在列表中出现的频率 据我所知 JavaScript 是这样的 var array 1 4 4 5 5 7 va
  • 是否保证 sizeof(T[N]) == N * sizeof(T) ?

    我一直假设 N 个元素类型的数组的大小T 由返回sizeof保证正好是N次sizeof T The 对这个问题的评论 https stackoverflow com questions 46457449 is it always the c
  • 打印 STDOUT/STDERR 并将它们写入 Bash 中的文件?

    有没有办法让 Bash 将 STDOUT STDERR 重定向到文件 但仍然将它们打印到终端 这会将 STDOUT 和 STDERR 重定向到同一个文件 some command 2 gt 1 tee file log Example to
  • EULA 接受 Bash 脚本

    我有一个尝试安装垃圾箱的脚本 除了 bin 在 more 中打开 EULA 之外 一切正常 在脚本再次开始并自行完成安装之前 您必须手动 ctrl c 退出此 more 实例 因为这更多的是逃离 shell 所以脚本在打开后不知道要运行什么
  • Powershell 数组到带引号的逗号分隔字符串

    我有一个数组 需要输出到逗号分隔的字符串 但我还需要引号 这是我所拥有的 myArray file1 csv file2 csv a myArray join a 输出为 a最终 file1 csv file2 csv 我想要的输出是 fi
  • 默认数组值

    有没有办法在javascript中为数组分配默认值 ex an array with 24 slots that defaults to 0 您可以使用fill数组上的函数 Array 24 fill 0 Note fill仅在 ECMAS
  • 在 postgresql 9.4 或 9.5 中查询 json 对象的嵌套数组中的元素

    studentID 1 StudentName jhon Data schoolname school1 enrolmentInfo year 2015 info courseID csc213 school IT enrollmentda
  • 为什么 Eclipse 有时会对 JavaScript 中的数组数组发出警告?

    在 Eclipse 中 以下 JavaScript 行 var a1 1 2 3 4 生成警告 Type mismatch cannot convert from Number to any Type mismatch cannot con
  • 在 Postgres 中的数组字段上应用聚合函数?

    是否可以对整数 字段 或其他数字数组 中的所有值应用聚合 如 avg stddev CREATE TABLE widget measurement integer insert into widget measurement values
  • 大小为 8 的无效写入,C Valgrind,字符串数组

    我一直在使用 valgrind 和 gdb 但我不太明白问题是什么 它跳来跳去太多了 我无法在 gdb 中真正追踪它 而在 valgrind 中我没有足够的信息 这是我的 makeargv 函数 它将 strtok 输出的字符串放入数组中
  • 如何隐藏显示终端命令输出

    当我运行这个命令时 sudo htpasswd b home reynolds htpasswd admin admin 我正在得到输出Updating password for user admin在终端中 但我不想显示该输出 所以我在谷
  • Shell 执行:时间与 /usr/bin/time

    当 bash zsh 执行以下操作时会发生什么 usr bin time l sleep 1 1 00 real 0 00 user 0 00 sys 516096 maximum resident set size 0 average s
  • 从java中的字符串数组中删除空值

    java中如何从字符串数组中删除空值 String firstArray test1 test2 test4 我需要像这样没有 null 空 值的 firstArray String firstArray test1 test2 test4
  • 在 Javascript 中创建数组

    我对 javascript 不太熟悉 并且在用 javascript 制作 2d 或者也许我可能需要 3d 数组时遇到了一些麻烦 我目前需要收集 2 条信息 一个 ID 和一个值 因此我创建了以下内容 var myArray var id
  • 将一维数组转换为二维数组[重复]

    这个问题在这里已经有答案了 我正在开发一个程序 我必须将文本文件中的值读入一维数组 我已经成功获取该一维数组中的数字 m1 1 2 3 4 5 6 7 8 9 但我希望数组是 m1 1 2 3 4 5 6 7 8 9 您可以使用此代码 co

随机推荐

  • MySQL 是否有命令删除除 PRIMARY 索引之外的所有索引?

    我有一个数据库表 有一个索引 其中键名为 PRIMARY 类型为 BTREE 唯一为 YES 打包为 NO 列为 ID 基数为 728 排序规则为 A 我有一个在页面加载时运行的脚本 该脚本将条目添加到 MySQL 数据库表中 并从数据库表
  • 使用 Qt 从 SQLite 中选择

    我尝试在 Linux 上的 Qt 4 5 3 上处理 SQLite 数据库 我已经创建了数据库 然后 我尝试在 Qt 上执行选择 db QSqlDatabase addDatabase QSQLITE db setDatabaseName
  • 是否可以在 PHP 接口中创建可选方法?

    我正在开发一个 PHP 项目 我有几个需要实现接口的类 有些类不需要实现接口中定义的所有方法 是否可以仅以更干净的方式实现某些方法 接口指定了方法must由实现它的类来实现 你不能跳过一些 尽管你可以创建额外的 你可以做的就是将你的接口分成
  • 在 Java 8 中扩展 List

    我经常想将一个列表映射到另一个列表 例如 如果我有一个人员列表 并且我想要他们的姓名列表 我想要这样做 GOAL List
  • cd 程序文件错误:找不到位置参数

    PS C gt cd Program Files 当我发出这个命令时 我不知道为什么 但它不接受Program Files 相同的命令在中运行得很好cmd 这是它显示的错误 Set Location A positional paramet
  • 装饰基于类的视图的两种方法有什么区别?

    我正在编写一个继承自 ListView 的视图 并尝试将该视图限制为登录用户 https docs djangoproject com en dev topics class based views decorating in urlcon
  • 创建 HUE 颜色条

    我正在创建一个颜色选择器 现在我需要创建一个 HUE 颜色条 创建它的一种方法是通过 XAML 中的渐变停止点 例如
  • 方案和浅绑定

    define make lambda x lambda y cons x list y let x 7 p make 4 cons x p 0 我是计划和函数式程序的新手 所以我对遍历程序有点笨拙 但我知道如果我使用深度绑定 该程序将返回
  • 如何使用函数进行模板模板参数推导?

    考虑一组函数 例如 template lt class Fun gt void A const Fun template lt class Fun gt void B const Fun template lt class Fun gt v
  • GWT 1.6 项目战争布局 - 混合源代码和编译器生成的工件?

    刚刚完成了一个基于 GWT 1 5 的项目 我正在考虑如何迁移到 1 6 我很惊讶地发现 GWT 似乎想将其编译输出写入 war 目录 通常在该目录中将项目置于源代码控制之下 这背后的原因是什么 谷歌真的认为这是个好主意吗 是否有解决方法可
  • 如何从HDFS文件系统执行hadoop jar?

    我总是从本地文件系统执行作业 如下所示 hadoop jar home usr jar myjar jar com test TestMain 如何执行相同的命令 但 myjar jar 将位于 hdfs 中 就像是 hadoop jar
  • 如何转义字段名称方括号内的方括号

    我有一些生成列名的动态 SQL 一个简单的例子可能是这样的 SELECT dbo getSomething 123 Eggs scrambled or Bacon fried 最终的列名称应该是这样的 鸡蛋 炒 或培根 煎 如果我尝试运行它
  • 使用 LESS 递归获取当前索引

    我正在尝试做到这一点 我有一个像这样的数组 levels level one level two level three level four level five level six level seven level eight 每个级
  • iPhone超声波检测(超过22kHz)

    iphone 3GS及以上型号能检测到的最大频率是多少 我一直在探索iPhone音频 我需要在没有任何外部设备的情况下检测 22 kHz 的声音频率 是否可以 如果麦克风设计得好 它将有一个抗混叠滤波器 其滚降始于略低于奈奎斯特频率 以确保
  • ffmpeg水印处理速度很慢

    我正在开发一个视频处理项目并使用 ffmpeg 进行水印 我完全实现了我想要的 但问题是这个过程非常非常慢 我在 32 位操作系统 Microsoft Windows 8 64 位 CPU 上使用具有 4GB RAM 的英特尔智能第二代系列
  • iOS8中用户默认的plist文件存储在哪里?

    我找不到首选项 plist 文件 因为首选项文件夹为空 要获取库文件夹 我使用 println NSSearchPathForDirectoriesInDomains LibraryDirectory UserDomainMask true
  • 在 MongoDB 中的 Angular.js 中显示图像

    我最近打开了另一个关于如何使用 node js mongoose 在 mongodb 数据库中存储图像的线程 使用猫鼬保存图像 https stackoverflow com questions 27353346 saving image
  • Django:通过“field__isnull=True”或“field=None”过滤查询集?

    我必须通过动态值 可以是 无 过滤查询集 我可以简单地写 filtered queryset queryset filter field value 或者我应该检查 无 if value is None filtered queryset
  • 设置 Cygwin + Android NDK + cocos2Dx 以与 Eclipse 配合使用

    我正在关注该网站的教程 通过游戏应用货币化 作者 Todd Perkins http www lynda com Android tutorials Understanding downloading Cocos2d x 107169 12
  • BASH 数组索引减去最后一个数组

    这是一个困扰我的问题 我需要从用户输入中读取版本号 并且我想使用存储版本号的数组的长度创建一个 菜单 然而 BASH 的神秘语法在这里对我没有帮助 echo VERSIONS 2 0 10 1 2 0 7 1 2 0 7 1 2 0 7 1