我无法从数组中提取特定元素。基本上我使用命令的输出并将其放入数组中。我想打印出一个元素。
到目前为止,这是我的代码。
one=`w | tr -s " " | cut -d" " -f1 | tail -n+3`
two=`w | tr -s " " | cut -d" " -f5 | tail -n+3`
echo ${one[@]:3:2}
这只会打印出从名称中的第三个字母开始的两个字母。我想从第三个名字开始打印出两个名字。
如果要将它们用作数组,则必须将它们one
创建为数组。two
one=($(w | tr -s " " | cut -d" " -f1 | tail -n+3))
此外,bash 数组的索引从 0 开始。因此,要打印从 name 开始的两个名称third
,您将使用
echo ${one[@]:2:2}
有两个问题:
数组的初始化应该如下:
one=($(w | tr -s " " | cut -d" " -f1 | tail -n+3))
然后打印你应该做的元素:
echo ${one[1]} ${one[2]}