LoginSignup
7
7

More than 5 years have passed since last update.

シェルスクリプトでの == を認めているのはbashだけ?

Last updated at Posted at 2015-04-06

件名が結論。
以下実験です。

まずはbashで以下を実行。

$ [ a = b ] && echo true || echo false
false
$ [ a == a ] && echo true || echo false
true

同じコマンドをdashで実行。

$ [ a = b ] && echo true || echo false
false
$ [ a == a ] && echo true || echo false
[: 4: a: unexpected operator
false

zshでもdashと同様の結果になりました。

おそらく、bashというシェルスクリプトの処理系が、if文やtest文の==を=とみなしてくれているだけなのでしょう。

求) シェルスクリプトの言語仕様の一次ソース
見つからないよー


(追記)
コメントでのご指摘を受けたりさらに調べたりしたまとめ。

また、
http://mywiki.wooledge.org/Bashism
に、bash->dashへの移植の際、よくある仕様の違いについて記述されている模様。

7
7
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7