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関連記事の目次
- bashのシェルスクリプト実行方法
- bashのシェルスクリプト プログラミング方法メモ
- bashのパイプの使い方
- bashのlist、サブシェル、コマンドブロック
- bashでの式の評価と算術演算
- bashでパターンマッチを使って条件評価
- bashのfor文で配列やセパレータ付き文字列から各要素を取り出す
- bashのfor文を使ってディレクトリ内のファイル一覧とディレクトリ一覧を出力
- bashのselect制御構造
- bashのパターンマッチ演算子の使い方
- ファイルの中身を一行ずつ読んで文字列を置換するbashスクリプト
- ディスク使用量が多いディレクトリを抽出するbashスクリプト
- ディレクトリ内の複数のファイルに対しファイル内の文字列を置換するbashスクリプト
- Bashスクリプトでmysqldumpバックアップと世代管理
- Dos攻撃など大量アクセスのログを検知するBashスクリプトを作成