加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

shell编程中条件测试的=和==的区别

发布时间:2020-12-15 19:43:32 所属栏目:安全 来源:网络整理
导读:在某国外shell编程书籍上看到对shell编程的建议中提到,建议在条件测试时使用=而不是== 对这个建议表示疑惑,在大多数的编程语言中判断相等一般都是==符号,经过测试=的确也可以用来进行相等判断;但为什么会有尽量使用=而不是==的建议呢。 经过查阅资料并实

在某国外shell编程书籍上看到对shell编程的建议中提到,建议在条件测试时使用=而不是==

对这个建议表示疑惑,在大多数的编程语言中判断相等一般都是==符号,经过测试=的确也可以用来进行相等判断;但为什么会有尽量使用=而不是==的建议呢。

经过查阅资料并实际验证发现,这个建议是为了提交shell编程的兼容性;


给出一个例子

#!/bin/sh
WWW=A

if [ "$WWW" == "A" ]; then
    echo 'support ==';
else
    echo 'not support ==';
fi

测试结果

dash:
    4: [: A: unexpected operator
    not support ==
tcsh:
 test: unknown operator ==   
bash:
    ==
ksh:
    ==


在[]中使用==是bash里的做法,不符合posix标准


Do not use ==. It is only valid in a limited set of shells,and willproduce unspecified behavior.

参考

http://stackoverflow.com/questions/10849297/compare-a-string-in-unix

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读