シェル・スクリプト・リファンレス
コマンド集(機能別) | コマンド集(アルファベット順) | コマンド逆引き大全 | シェル・スクリプト・リファンレス

 ループから抜け出す「break」

 繰り返し制御文は,条件を満たさなくなるか,特定の回数分繰り返すまでループし続けるときに用いる。しかし,途中でエラーが発生したなど,ループを中止したい場合があるだろう。こうしたときに利用するのがbreakである。

 たとえば,次のようなシェル・スクリプト「chmod_write.sh」があったとする。


#!/bin/sh

for t_file in "$@"
do
	if [ ! -f $t_file ]
	then
		echo "Not such file : $t_file"
		break
	fi
	chmod u+w $t_file
	echo "Changed mode : $t_file"
done

 このスクリプトは引数に与えたファイルのパーミッションに書き込み権限を設定する。ただし,指定したファイルが通常ファイルでなかったり,存在しなかった場合は,エラー・メッセージを表示し,breakでループから抜け出す。結果的にスクリプトはエラーが表示された時点で終了する。


$ ./chmod_write.sh file1 file2 dirctory3 file4 
Changed mode : file1
Changed mode : file2
Not such file : directory3      ← ディレクトリであったため,処理を中断した