三、Shell配列

1611 ワード

配列には複数の値を格納できます.Bash Shellは1次元配列(多次元配列はサポートされていない)のみをサポートし、初期化時に配列サイズ(PHPと類似)を定義する必要はありません.ほとんどのプログラミング言語と同様に、配列要素の下付き文字は0から始まります.Shell配列は括弧で表され、要素は「スペース」記号で分割され、構文形式は以下の通りです.
array_name=(value1 ... valuen)
  
#!/bin/bash
# author:    
# url:www.runoob.com

my_array=(A B "C" D)
              :
array_name[0]=value0
array_name[1]=value1
array_name[2]=value2

配列の読み込み
配列要素の値を読み込む一般的なフォーマットは、次のとおりです.
${array_name[index]}
  
#!/bin/bash
# author:    
# url:www.runoob.com

my_array=(A B "C" D)

echo "      : ${my_array[0]}"
echo "      : ${my_array[1]}"
echo "      : ${my_array[2]}"
echo "      : ${my_array[3]}"

スクリプトを実行し、次のように出力します.
$ chmod +x test.sh 
$ ./test.sh
      : A
      : B
      : C
      : D

配列内のすべての要素を取得
@または*を使用して、配列内のすべての要素を取得します.たとえば、次のようにします.
#!/bin/bash
# author:    
# url:www.runoob.com

my_array[0]=A
my_array[1]=B
my_array[2]=C
my_array[3]=D

echo "      : ${my_array[*]}"
echo "      : ${my_array[@]}"

スクリプトを実行し、次のように出力します.
$ chmod +x test.sh 
$ ./test.sh
      : A B C D
      : A B C D

配列の長さの取得
配列の長さを取得する方法は、文字列の長さを取得する方法と同じです.たとえば、次のようにします.
#!/bin/bash
# author:    
# url:www.runoob.com

my_array[0]=A
my_array[1]=B
my_array[2]=C
my_array[3]=D

echo "       : ${#my_array[*]}"
echo "       : ${#my_array[@]}"

スクリプトを実行し、次のように出力します.
$ chmod +x test.sh 
$ ./test.sh
       : 4
       : 4