【问题标题】:How to cut a certain field from an array in bash shell scripting?如何从 bash shell 脚本中的数组中剪切某个字段?
【发布时间】:2018-03-16 11:01:41
【问题描述】:

我创建了一个包含学生姓名和三个年级分数的数组:

studentArray=( [0]="John Doe":100:88:90 )

我的麻烦是当我在 shell 中运行 cut 命令时,像这样

cut -d: -f1 /submit/studentGrades

它显示 bash 脚本的全部内容,而不仅仅是我想要的部分,即名称。

#!/bin/bash

studentArray=( [0]="John Doe"

echo "${studentArray[0]}"

exit 0

如果我像这样执行字段 2:

cut -d: -f2 /submit/studentGrades

它只显示我想要的一年级,但它仍然显示 bash 脚本的全部内容。

我做错了什么?这是我第一次在 Bash 脚本中使用数组。

提前感谢您的帮助!

【问题讨论】:

  • 你为什么在脚本文件上使用cut
  • 我们必须为五个学生连同成绩一起创建数组。然后我们要提取每个学生的姓名和所有三个年级,求平均值,然后显示出来。
  • 你为什么要通过切割而不是直接在分配它的脚本中访问数组?
  • 使用像for student in "${studentArray[@]}"这样的循环
  • 是的,但是使用循环只会打印出数组中的所有项目,不是吗?我正在尝试单独访问每个项目。我对你的确切意思有点困惑。我很抱歉不理解。

标签: linux bash shell terminal scripting


【解决方案1】:

我不确定您为什么要尝试将脚本文件用作数据文件。

在切割前使用grep选择你想要的线:

grep '^studentArray=' /submit/studentGrades | cut -d: -f1

【讨论】:

    猜你喜欢
    • 2020-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-01
    • 2015-03-16
    • 2011-04-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多