1

配列から特定の要素を抽出するのに問題があります。基本的に、コマンドからの出力を使用して配列に入れました。1つの要素を印刷したいと思います。

これまでの私のコードは次のとおりです。

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

これにより、名前の 3 文字目から 2 文字だけが出力されます。3番目の名前から始まる2つの名前を印刷したい。

4

2 に答える 2

0

2 つの問題があります。

  • 配列の初期化は次のようにする必要があります。

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

  • 次に、要素を印刷するには、次のことを行う必要があります。

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

于 2012-12-08T08:38:27.580 に答える
0

oneおよびtwoを配列として使用する場合は、配列として作成する必要があります。

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

また、bash 配列は 0 から始まるインデックスが付けられます。したがって、name から始まる 2 つの名前を出力thirdするには、次を使用します。

echo ${one[@]:2:2}
于 2012-12-08T07:55:36.640 に答える