units(1)
|
FreeBSD 一般コマンドマニュアル
|
units
units
オプション
-f filename
単位換算用のデータファイル名を指定します。
-q 求める単位の入力プロンプトと、換算する単位の入力プロンプトの表示
を抑制します。
-v バージョン番号を表示します。
from-unit to-unit
コマンドラインから直接、単位換算を行ないます。プロンプトは表示せ
ず、指定した換算結果を表示し終了します。
解説
units プログラムは様々な単位で表された量を他の単位に換算します。乗算で求
められる単位の換算のみ行なえますが、摂氏から華氏への変換などはできませ
ん。入力プロンプトを介して、対話的に動作します。
You have: meters
You want: feet
* 3.2808399
/ 0.3048
You have: cm^3
You want: gallons
* 0.00026417205
/ 3785.4118
You have: meters/s
You want: furlongs/fortnight
* 6012.8848
/ 0.00016630952
You have: 1|2 inch
You want: cm
* 1.27
/ 0.78740157
単位の中で累乗を表す部分は、上の例のように `^' を用いて表すか、あるいは単
に連結して表記します。例えば `cm3' は `cm^3' と等価です。単位の掛け算を表
すには、空白、ダッシュあるいはアスタリスクを用います。単位の割り算には
`/' を用います。掛け算は割り算より高い優先度を持ちますから、 `m/s/s' は
`m/s^2' あるいは `m/s s' と同じ意味になります。数値の割り算には縦棒(`|')
を用いなければなりません。例えば 1 メートルの半分を変換するには、`1|2
meter' と書きます。もし `1/2 meter' と書くと、 units はそれを `0.5/meter'
と解釈します。換算できない単位型を指定すると、 units はそれに対応していな
い旨のメッセージを表示し、各単位の簡略形を示します。
You have: ergs/hour
force g と同じ
mole アボガドロ数
water 単位水柱の圧力
mercury 単位水銀柱の圧力
au 天文単位
`pound' (ポンド) は質量の単位です。複合した単位名は連結して記述します。
`pound force' は力の単位です。 `ounce' (オンス) もまた質量の単位です。液
体のオンスは `floz' です。英米で同じ単位の値が異なる場合、英国式単位の前
に `br' を付けます。通貨単位の場合には `belgiumfranc' や `britainpound'
のように頭に国名を付けて区別します。単位を探す際に指定された文字列そのも
のが単位名として見つからない場合、 units は末尾の `s' や `es' を取り除い
て再度チェックします。
どのような単位が利用可能か、については、標準の単位ファイルを参照して下さ
い。独自の単位を追加したいなら、独自のファイルを指定できます。単位の指定
は、1 行に名前とそれに相当する量を書きます。新しい単位は古い単位に基づい
て定義し、単位を変換していくと `!' 印を付した原始単位にたどりつくように注
意してください。不注意で単位定義に無限ループがあっても units はそれを検知
しません。単位定義ファイル中において `/' で始まる行はコメントです。
接頭語の定義も標準的な単位と同形式で行ないますが、接頭語名の末尾にダッ
シュをつけます。末尾の `s' や `es' を取り除いても、単位名として見つからな
い場合は、接頭語かどうかがチェックされ、接頭語を取り除くと有効な基本単位
名となるかを調べます。
基本的な単位を定義する簡単な単位ファイルの例を以下に示します。
m !a!
sec !b!
micro- 1e-6
minute 60 sec
hour 60 min
inch 0.0254 m
ft 12 inches
mile 5280 ft
バグ
接頭語に `/' が含まれるとびっくりする結果を生みます。
ユーザが入力する累乗部分は 1 桁でなければなりません。必要なら何度か掛け合
わせて下さい。
数の除算には `|' を用い、シンボルの除算には `/' を用いなければなりません
が、このような区別は不要にすべきです。
このプログラムは、換算した表示桁数の制限がばらばらですし、データファイル
の長さにも制限があります。
単位を格納するのにハッシュ表を用い、単位表のロードと重複チェックの時間を
軽減すべきです。