bashのfor文の仕様、使い方をmanを見て確認し、実際に配列や$PATH環境変数に対して使用してみました。
1)構文1
for name [ [ in [ word … ] ] ; ] do list ; done
①”word”を構成するリストから各要素が”name”変数に設定される。
②”list”内で、①で設定された”name”を使ってコマンド実行
例)
・環境変数PATHに設定されているディレクトリを1行ずつ”ls -ld ディレクトリ”で表示する。
・環境変数PATHは、”:”で区切られているので、IFS環境変数で区切り文字として”:”を指定する。
IFS=: for dir in $PATH ; do ls -ld $dir done
2)構文2
for (( expr1 ; expr2 ; expr3 )) ; do list ; done
・expr1
最初に評価される算術式
・expr2
0と評価されるまで繰り返し評価される算術式。
その際にlistが実行され、expr3が実行される。
例)
・配列の各要素を一つずつ表示する。
・配列の各要素への参照は下記構文を使用。
${array[i]}
・配列のすべての要素の長さは下記構文を使用。
${#array[@]}
names=(one two three) for (( i=0 ; i<${#names[@]}; i++ )) ; do echo ${names[i]} done関連記事の目次