シェルスクリプトでforeachの様に配列を繰り返し処理する方法

目次

スポンサードリンク

foreachコマンドは、配列データに特化した繰り返し処理を簡単に実行できるメソッドです。

シェルスクリプトでは、利用するシェルの種類によってforeachコマンドが使えるものと使えないものがあります。csh(C Shell)やtcsh(Tenex C Shell)では、foreachコマンドを使用することができますが、bashではforeachコマンドは利用できません。

foreachコマンドの基本構文

cshやtcshでは以下のようにforeachコマンドを実行することができます。

foreach 変数 (配列)
    コマンド
end

以下のサンプルコードではhttpdのログファイルを配列で取得して一つずつ標準出力に出しています。1行目のシバンもcshを表す「#!/bin/csh」になっています。

#!/bin/csh

foreach var (`ls -l /var/log/httpd/ | awk '{print $9}'`)
    echo $var
end

exit 0

bashでのループ処理

bashでは上記foreachコマンドは使用できません。bashではfor文を使って配列データを繰り返し処理します。

#!/bin/bash

file_names=(`ls -l /var/log/httpd/ | awk '{print $9}'`)

for filename in ${file_names[@]}
do
        echo $filename
done

exit 0

シェルスクリプトの知識は、プログラマにとって長く役立つ知識です。 私はこちらの書籍で一通り知識を抑えました。基本から丁寧に解説されています。

最短3時間で覚えるLinuxシェルスクリプト
こちらは、シェルスクリプトの基本的な書き方、デバッグ方法、if, case, while, forなど基本的な制御構文について書かれています。30日間の無料体験もできる『Kindle Unlimited』でも読むことができます。

Linuxコマンドについて徹底的に学べるUdemy講座
もう絶対に忘れない Linux コマンド【Linux 100本ノック+名前の由来+丁寧な解説で、長期記憶に焼き付けろ!】 icon

関連記事