# Array 組込みコマンド

Array 組込みコマンドは​配列の表示や操作を行います。

## 構文

- `array`

- `array 配列名 [値…]`

- `array -d 配列名 [インデックス…]`

- `array -i 配列名 インデックス [値…]`

- `array -s 配列名 インデックス 値`

## 説明

オプションもオペランドも指定せずに実行すると、array コマンドは全ての配列の定義を (コマンドとして解釈可能な形式で) 標準出力に出力します。

オプションを指定せずに配列名と値を与えて実行すると、array コマンドはその配列の内容を指定された値に設定します。

`-d` (`--delete`) オプションを指定して実行すると、array コマンドは指定した配列の指定したインデックスにある要素を削除します。配列の要素数は削除した要素の分だけ少なくなります。存在しない要素のインデックスを指定したときは無視します。

`-i` (`--insert`) オプションを指定して実行すると、array コマンドは指定した配列の指定したインデックスにある要素の直後に指定した値を要素として追加します。配列の要素数は追加した要素の分だけ増えます。インデックス として 0 を指定すると配列の先頭に要素を追加します。インデックスとして配列の要素数より大きな数を指定すると配列の末尾に要素を追加します。

`-s` (`--set`) オプションを指定して実行すると、array コマンドは指定した配列の指定したインデックスにある要素の値を指定した値に変更します。

## オプション

`-d`
`--delete`

  配列の要素を削除します。

`-i`
`--insert`

  配列に要素を挿入します。

`-s`
`--set`

  配列の要素を変更します。

## オペランド

配列名

  表示または操作する配列の名前です。

インデックス

  配列の要素を指定する自然数です。インデックスは最初の要素から順に 1, 2, 3, … と割り振られます。

値

  配列の要素となる文字列です。

## 終了ステータス

エラーがない限り array コマンドの終了ステータスは 0 です。

## 補足

POSIX には array コマンドに関する規定はありません。 Yash ではこれを​拡張組込みコマンドとして実装しています。

`array 配列名 [値…]` の形式の array コマンドは変数代入を用いて `配列名=(値…)` と書くこともできます。