みなさん、こんにちは。

前回はファイル形式のマクロでしたが、「♪♪花は桜木、マクロは variable~」というわけで今回は variable 形式です。ここから TACL のいろいろな要素が出てきます。

まずは、マクロのソースファイルを作ります。次の2行をファイルに書いて、どこかの subvol に置きましょう。

今回、ファイル名は何でもかまいません。ここでは $vol.subvol.macsrc と仮定します。

あ、そうそう、前回のファイル形式では、ファイル名=マクロ名でした。つまり1ファイルに1マクロしか記述できませんでした。variable 形式の場合、マクロソースファイルには複数のマクロを記述することができます。?section の行から次の ?section が現れるまでが1つのマクロとして扱われます。まずは1マクロだけ記述してみます。

ソースを用意できましたか?ではそれを自分の環境に読み込ませましょう。いや待て、1つ確認しておきたいことがあります。あなたの環境には誰かが作った fi マクロが読み込まれていると思いますが、同様に ls マクロが読み込まれていませんか?それを確認するには以前出てきた手法を使いましょう。

と表示されればクリーンな環境です。もし、すでに登録されていたら、既存の lsマクロを上書いてしまいますので、その場合は、おとなしくこちらのマクロ名を変えましょう。例えばマクロ名を xxxls にするなら

ということですね。

さて、今度こそ読み込みです。次のように実行します。

無事読み込めたら

のように表示されるはずです。“LS” が表示されることで、ls マクロが使えることが分かります。varinfo や outvar も確認しておきましょう。

で問題ありませんね。それでは実行です。

どうですか。fileinfo や fi と同じ結果が得られたと思います。前回の

よりも遥かに少ないタイピングでマクロを実行できるようになりましたね。

いま作ったマクロの type は macro だったので、本来の alias で作り直してみましょう。ソースファイルを次のように修正します。

1行目が alias に代わり、2行目からパラメータが消えました。alias はコマンドの読み替えを宣言するものなので、alias 自体にはパラメータを付けることができません。ではこのソースを読み込んで

varinfo/outvar で確認してみましょう。

OK、ちゃんとあります。実行してみても

で fileinfo と同じ結果が得られます。これで variable 形式のマクロを作成・実行することができるようになりました。

今回はここまで、次回は時刻の扱いや variable の「展開」などをお話しします。Au revoir!