从数组中提取元素 (bash)



我在从数组中提取特定元素时遇到问题。基本上,我使用命令的输出并将其放入数组中。我想打印出一个元素。

这是我到目前为止的代码。

one=`w | tr -s " " | cut -d" " -f1 | tail -n+3`
two=`w | tr -s " " | cut -d" " -f5 | tail -n+3`
echo ${one[@]:3:2}

这只会打印出从名称中的第三个字母开始的两个字母。我想打印出从第三个名字开始的两个名字。

如果要将它们用作数组,则必须创建onetwo数组。

one=($(w | tr -s " " | cut -d" " -f1 | tail -n+3))

此外,bash 数组从 0 开始索引。因此,要打印出从third名称开始的两个名称,您将使用

echo ${one[@]:2:2}

有两个问题:

  • 数组的初始化应如下所示:

    one=($(w | tr -s " " | cut -d" " -f1 | tail -n+3))

  • 然后要打印您应该执行的操作的元素:

    echo ${one[1]} ${one[2]}

相关内容

  • 没有找到相关文章