シェルスクリプトのfor文

シェルスクリプトには他言語同様 for 文があります。

シェルスクリプトで for 文を使う時、パス名展開算術式展開で触れました処理を使用します。


パス名展開の方のサンプルコードとして、カレントディレクトリにある拡張子がtxtのファイル名を出力する処理を書いてみます。

※ファイル名は f.sh にします


~/f.sh

#!/bin/bash

for file in *.txt
do
	echo $file
done

※一行目で#!/bin/bashを使用しない方が良いです

forの行では、パス名展開で得られた複数のtxtファイルで繰り返し処理を行い、doの下の行でファイル名を出力します。




続いて算術式展開の方のサンプルコードとして、0から9までの値を出力してみます。

#!/bin/bash

for (( i = 0; i < 10; i++ ))
do
	echo $i
done

forの行の算術式展開の中身は他言語でも見られる記述ですので、この場では省略します。


どちらにも言えることですが、forの下の行にdoを書き、繰り返し終了の行をdoneで終了します。

他にも書き方はありますが、この場では触れないことにします。


補足

forとdoを同じ行に書きたい時は

for file in *.txt; do

のようにパス名展開等とdoの間にセミコロン( ; )を入れます。

同じカテゴリーの記事
マインクラフト用ビジュアルエディタを開発しています。
詳しくはinunosinsi/mcws_blockly - githubをご覧ください。