基本的なBash配列の質問

基本的なBash配列の質問
#!/bin/bash
# query1.sh

numbers=(53 8 12 9 784 69)
echo ${numbers[3]} # <--- this echoes "9" to standard output.

number=numbers[3]
echo number # <--- this echoes "number" to stdout.
echo $number # <--- this echoes "numbers[3]" to stdout.
echo ... <--- ???

number名前付き変数をエコーし​​て「9」を標準出力として取得するには、どの構文を使用する必要がありますか?

ベストアンサー1

あなたの質問は次のとおりです。

number=numbers[3]

配列の4番目の要素はnumbers変数に割り当てられませんnumbernumbers[3]実際には意味がないからです。

$ numbers=(53 8 12 9 784 69)
$ echo $numbers[3]
53[3]

配列名のみを変数として使用すると、実際に使用されるのは配列の最初の要素(53)です。だから$numbers[3]それは53[3]。あなたが望むもの:

$ number=${numbers[3]}
$ echo $number
9

おすすめ記事