「シェルスクリプトの基礎 - 配列」の版間の差分

提供:MochiuWiki - SUSE, Electronic Circuit, PCB
ナビゲーションに移動 検索に移動
編集の要約なし
5行目: 5行目:
== 配列の定義 ==
== 配列の定義 ==
配列を定義するには、以下のように記述する。<br>
配列を定義するには、以下のように記述する。<br>
  <source lang="sh">
  <syntaxhighlight lang="sh">
  array[0]=a
  array[0]=a
  array[1]=b
  array[1]=b
  array[2]=c
  array[2]=c
  </source>
  </syntaxhighlight>
<br>
<br>
または、以下のように記述する。<br>
または、以下のように記述する。<br>
  <source lang="sh">
  <syntaxhighlight lang="sh">
  array=(a b c)
  array=(a b c)
  </source>
  </syntaxhighlight>
<br><br>
<br><br>


== 配列の基本 ==
== 配列の基本 ==
以下の例では、0〜3番目(2番目を除く)までの要素の配列を定義した後、各要素と配列全体を出力している。<br>
以下の例では、0〜3番目(2番目を除く)までの要素の配列を定義した後、各要素と配列全体を出力している。<br>
  <source lang="sh">
  <syntaxhighlight lang="sh">
  #!/bin/sh
  #!/bin/sh
   
   
47行目: 47行目:
  d
  d
  a b d
  a b d
  </source>
  </syntaxhighlight>
<br><br>
<br><br>


== 配列の要素の削除 ==
== 配列の要素の削除 ==
以下の例では、配列を定義した後、<code>unset</code>コマンドにより0番目の要素を削除している。<br>
以下の例では、配列を定義した後、<code>unset</code>コマンドにより0番目の要素を削除している。<br>
  <source lang="sh">
  <syntaxhighlight lang="sh">
  #!/bin/sh
  #!/bin/sh
   
   
64行目: 64行目:
  # 出力
  # 出力
  b
  b
  </source>
  </syntaxhighlight>
<br><br>
<br><br>


74行目: 74行目:
  array=(a b c d)
  array=(a b c d)
   
   
  echo ${#array[@]}
  echo "${#array[@]}"
   
   
  # 出力
  # 出力
83行目: 83行目:
== 配列と繰り返し ==
== 配列と繰り返し ==
以下の例では、括弧<code>()</code>を使用して配列を定義した後、<code>for</code>文を使用して配列の要素を出力している。<br>
以下の例では、括弧<code>()</code>を使用して配列を定義した後、<code>for</code>文を使用して配列の要素を出力している。<br>
  <source lang="sh">
  <syntaxhighlight lang="sh">
  #!/bin/sh
  #!/bin/sh
   
   
98行目: 98行目:
  element = c
  element = c
  element = d
  element = d
  </source>
  </syntaxhighlight>
<br>
<br>
また、以下のように記述することもできる。<br>
また、以下のように記述することもできる。<br>

2020年11月17日 (火) 15:47時点における版

概要

シェルスクリプトにおいて、配列を使用する方法を記載する。


配列の定義

配列を定義するには、以下のように記述する。

 array[0]=a
 array[1]=b
 array[2]=c


または、以下のように記述する。

 array=(a b c)



配列の基本

以下の例では、0〜3番目(2番目を除く)までの要素の配列を定義した後、各要素と配列全体を出力している。

 #!/bin/sh
 
 array[0]=a
 array[1]=b
 array[3]=d
 
 # 0番目の要素を参照する
 echo "$array"
 
 # 1番目の要素を参照する
 echo "$array[1]"
 
 # 2番目の要素は存在しないので空文字となる
 echo "$array[2]" 
 
 # 3番目の要素を参照する
 echo "$array[3]"
 
 # 全要素を参照する
 echo "$array[@]"
 
 # 出力
 a
 b
 
 d
 a b d



配列の要素の削除

以下の例では、配列を定義した後、unsetコマンドにより0番目の要素を削除している。

 #!/bin/sh
 
 array[0]=a
 array[1]=b
 
 unset array[0]
 
 echo "$array[@]"
 
 # 出力
 b



配列の表示

配列の要素数を表示するには、${#変数名[@]}を使用する。

 #!/bin/sh
 
 array=(a b c d)
 
 echo "${#array[@]}"
 
 # 出力
 4



配列と繰り返し

以下の例では、括弧()を使用して配列を定義した後、for文を使用して配列の要素を出力している。

 #!/bin/sh
 
 array=(a b c d)
 
 for e in $array[@]
 do
    echo "element = $e"
 done
 
 # 出力
 element = a
 element = b
 element = c
 element = d


また、以下のように記述することもできる。

 #!/bin/sh
 
 array=(a b c d)
 
 for ((i=0; i<${#array[@]}; i++))
 do
    echo "element = $array[i]"
 done
 
 # 出力
 element = a
 element = b
 element = c
 element = d