begin - コードブロックを開始する

概要

begin; [COMMANDS ...]; end
{ [COMMANDS ...] }

説明

begin は、新しいコードブロックを作成するために使用されます。

ブロックを使用することで、新しい 変数スコープ の導入、一連のコマンドの入出力をグループとして一括リダイレクト、あるいは and のような条件付きコマンドを使用する際の優先順位の指定が可能になります。

このブロックは無条件に実行されます。 begin; ...; endif true; ...; end と等価です。

begin 自体は現在の終了ステータスを変更しません。ブロックの完了後、 $status には最後に実行されたコマンドが返したステータスが設定されます。

他のいくつかのシェルでは、 { [COMMANDS ...] ; } という記法のみをサポートしています。

-h--help オプションはこのコマンドの使用方法に関するヘルプを表示します。

以下のコードは、ブロックスコープ内でいくつかの変数を設定します。変数はブロック内で設定され、ローカルスコープを持つため、ブロックが終了すると自動的に削除されます。

begin
    set -l PIRATE Yarrr

    ...
end

echo $PIRATE
# This will not output anything, since the PIRATE variable
# went out of scope at the end of the block

以下のコードでは、すべての出力がファイル out.html にリダイレクトされます。

begin
    echo $xml_header
    echo $html_header
    if test -e $file
        ...
    end
    ...
end > out.html