プログラミングなどなど

プログラミングに関係しそうな内容を

spin, panコマンドのヘルプとページャ(less)

SPINを勉強しているのですが、spin, 検証器(pan)コマンドのオプションが覚えられずに頻繁にヘルプを参照しています。

私の環境ではヘルプを出力すると作業ターミナルの画面から溢れるのでページャを通して確認することが多いです。ページャを通すと検索機能を使えるため個人的にはとても気に入って使っています。

今回は以下の2つを紹介したいと思います。

  1. spinのヘルプ(標準出力)をページャを通して見る
  2. pan のヘルプ(標準エラー出力)をページを通して見る

使用しているページャはlessです。

使用しているシェルの確認

$ echo $SHELL
/bin/bash

spinコマンドのヘルプ

$ spin --help | less

検証器(pan)のヘルプ

適当なモデルを記述して検証の生成からコンパイルを行います。

$ cat p.pml 
bool b = true;

active proctype p()
{
  if
  :: b = true
  :: b = false
  fi
}
$ spin -a p.pml 
$ gcc -w pan.c -o pan

spinと同じように試す

以下のようにヘルプを見ようとしても画面出力が流れます。

$ ./pan -h | less

これはヘルプの標準エラーに出力されているためです。

標準エラー出力を含めてパイプに流す

$ ./pan -h |& less

おわりに

ページャに慣れておくと1画面を超える出力をゆっくり確認したい場合に役立ちますので、個人的にはおすすめです。以下のようなケースでよく使用します。

$ cat *.log | less <-- ログファイルをまとめて確認
$ cat *.log | 各種フィルタコマンド | less <-- 出力結果を1画面ずつ確認