雑多なメモ
bc
コマンドは、数値の表現形式として1e-5
のようなものを受け付けない。 (standard_in) 1: syntax error などと表示される。test
の文字列比較は=
でも==
でもよい。help test
では前者しか説明されていないが。[ $1 == 2 ]
のように比較をすると、引数が何も指定されていない時にエラーになるが、なぜかググって見つかる記事では、「変数の型が云々」とか言っているが、そんなものは関係ない。大嘘である。 $1 がからのとき、その評価によってコードから削除されるので、実行されるコードは[ == 2 ]
となり、エラーメッセージ [: ==: unary operator expected を得る。つまり、コマンド[
(test
と同じ。 bash の場合はビルトイン) が、「==
とか使っちゃってるけど、先行するオペランドがないから、この位置には単項演算子しか使っちゃダメなんだけどプゲラw」と言っているわけだ。ただ、ダブルクオートでくくるっていう解決策は別に間違ってはいない。その場合、"$1"
が""
となり、空文字列が引数として渡される。