Linux シェルスクリプト|for 文|配列の要素数ループ|コマンド実行結果の行数分ループ|インデックス i でループ|スペース区切りの文字列リストでループ|bash シェル


 ここでは、for 文を使用して、下記の様々な構文について記載する。


・インデックス i でループする方法

・配列の要素数ループする方法

・スペース区切りの文字列リストでループする方法

・コマンド実行結果の行数分ループする方法




インデックス i でループする方法

下記の sample.sh のような for 文の構文でループできる。


・sample.sh

#!/bin/bash

for ((i=3; i<6; i++))
do

  echo ${i}

done

この sample.sh を実行すると、下記が標準出力される。

3
4
5


※下記の seq コマンドを使用したシェルスクリプトでも上記と同じ標準出力の結果を得ることができる。

・sample.sh

#!/bin/bash

for i in `seq 3 5`
do

  echo ${i}

done


配列の要素数ループする方法

下記の sample.sh のような for 文の構文でループできる。


・sample.sh

#!/bin/bash

fruit_array=(apple orange banana)

for fruit in ${fruit_array[@]}
do

  echo ${fruit}

done

この sample.sh を実行すると、下記が標準出力される。

apple
orange
banana


また、for 文の中でインデックスを取得して使用したい場合は、下記の sample.sh のような for 文の構文でループする。


・sample.sh

#!/bin/bash

fruit_array=(apple orange banana)

for i in ${!fruit_array[@]}
do

  echo "${i} ${fruit_array[${i}]}"

done

この sample.sh を実行すると、下記が標準出力される。

0 apple
1 orange
2 banana


スペース区切りの文字列リストでループする方法

下記の sample.sh のような for 文の構文でループできる。


・sample.sh

#!/bin/bash

for fruit in apple orange banana
do

  echo ${fruit}

done

この sample.sh を実行すると、下記が標準出力される。

apple
orange
banana


コマンド実行結果の行数分ループする方法

下記の sample.sh のような for 文の構文でループできる。


・sample.sh

#!/bin/bash

for line in `cat sample.lst`
do

  echo ${line}

done

・sample.lst

apple
orange
banana

この sample.sh を実行すると、下記が標準出力される。

apple
orange
banana





スポンサーリンク

0 件のコメント :

コメントを投稿