DOSEIの日記

技術メモ+日常ログ

雑多なメモ

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