名前 | 形式 | 機能説明 | 使用例 | 属性 | 関連項目 | 注意事項
while コマンドは、 conditions を繰り返し実行し、 conditions 中の最後のコマンドの終了状態が 0 の場合、 actions を実行 (do actions) します。 それ以外の場合、 ループは終了します。 actions 中のコマンドを実行 (do actions) しない場合、 while コマンドは 0 の終了状態を返します。 ループの終了条件の判定を逆にするには、 while の代わりに until を使用します。
conditions が真 (0 以外) であるかぎり、 while と、対応する end 文の間のコマンドを繰り返します。 while と end は入力行にそれぞれ単独で現われる必要があります。 シェルの入力が端末の場合、疑問符を出力してコマンドの入力を 受け付け、end コマンドが入力されると、 ループ内でコマンドを実行します。
while コマンドは、 conditions を繰り返し実行し、 conditions リスト中の最後のコマンドの終了状態が 0 の場合、 actions を実行します。 それ以外の場合、 ループは終了します。 actions 中のコマンドを実行しない場合、 while コマンドは 0 の終了状態を返します。 ループ終了条件の判定を逆にするには、 while の代わりに until を使用します。
continue 組み込みコマンドを使用して while または until ループの現在の繰り返し実行を終了させることができます。 break 組み込みコマンドを使用して while または until コマンドの実行を終了させることができます。
次の例では、ユーザーが空行を入力して 実行を終了させるまで、 ファイル名を検出するために プロンプトを繰り返します。
filename=anything while [ $filename ] do echo "file?" read filename # 端末から読み取る find . -name $filename -print done |
set filename = anything while ( "$filename" != "" ) echo "file?" set filename = $< # 端末から読み取る find . -name $filename -print end |
次の属性については attributes(5) のマニュアルページを参照してください。
属性タイプ | 属性値 |
---|---|
使用条件 | SUNWcsu |
sh と ksh では、if、for、while の組み込みコマンドの構文でセミコロンの 代わりにキャリッジリターンが使用できます。