forのループでコマンド結果を処理する構文

UNIX3-100

forを使ったループ処理

ディレクトリにある複数ファイルに対して、コマンドを実行するシェルを作ってみます。

ディレクトリには、6つのファイルが存在しています。

$ ls -l
total 0
-rw-r--r--    1 root     system            0 Nov 06 14:31 AAA
-rw-r--r--    1 root     system            0 Nov 06 14:31 BBB
-rw-r--r--    1 root     system            0 Nov 06 14:31 CCC
-rw-r--r--    1 root     system            0 Nov 06 14:31 DDD
-rw-r--r--    1 root     system            0 Nov 06 14:31 EEE
-rw-r--r--    1 root     system            0 Nov 06 14:31 FFF
$

 

これらのファイルを、echoで「”ファイル名” があります。」というコマンドをforで繰り返すシェルを作ります。
シェル名は「for_echo.sh」とします。

シェル内容はこのようになります。

$ vi for_echo.sh

for FILE_NAME in `ls ./files`;do
  echo "$FILE_NAME があります。"
done

 

内容としては、コマンド「ls ./files」でリストされた複数のファイルを、1つづつ変数「FILE_NAME」に代入して、
「echo $FILE_NAME があります。」を実行しています。

実行するとこのような結果になります。

$ for_echo.sh
AAA があります。
BBB があります。
CCC があります。
DDD があります。
EEE があります。
FFF があります。
$

 

 

 


サブコンテンツ

このページの先頭へ