linux-是什么导致Shell脚本中=和==的解释不同?教程
我最近更新到Ubuntu 13.04,我的一个shell脚本与此中断:
#!/bin/sh
...
if [ "$SHOW_USAGE" == "true" ]; then
./install.sh: 248: [: false: unexpected operator
现在,我知道我可以通过用单个等号(‘=’)替换双等号(‘==’)来解决此问题,但是是什么原因导致了13.04和以前的Ubuntu版本之间的Ubuntu行为差异?有没有办法恢复以前版本的更灵活的解释?
解决方法:
/ bin / sh(不是您所写的/bin.sh)曾经链接到/ bin / bash,但是现在在Ubuntu上链接到/ bin / dash. bash可以容忍某些bashism,即使被称为sh.