書式
begin; [COMMANDS...;] end

概要

begin コマンドは
コードブロックを作成します。

ブロックは無条件に実行されます。

begin
  ...
end


if true
  ...
end

と同じです。

beginend とともに
複数のコマンドをブロックに
まとめるために使います。

begin により以下のことができます。

begin は現在の終了ステータス
変更しません。

実行例

以下のコードはset -l
ブロック内のみに有効なスコープで
変数を設定します。

ブロック内で変数が設定されますので、
ローカルスコープになります。

ローカル変数は
ブロックから出たら
自動的に消去されます。

begin
    set -l PIRATE Yarrr
    ...
end
echo $PIRATE

このコードは何も出力しません。

なぜなら PIRATE 変数は
ブロックの外に出ると
スコープの範囲外になるからです。

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

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

最後までお読みいただき、ありがとうございました。参考になれば嬉しいです。